Maciej Kuc 2 Napisano 23 Czerwca 2022 Udostępnij Napisano 23 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Dzień dobry wszystkim, a w szczególności czarodziejom SQLa! Czy istnieje jakikolwiek sposób na zbiorcze przemieszczenie jednej z sekcji opisu aukcji (nie trwających, lecz przygotowanych do wystawienia)? Jak wiemy, opcja wstawienia sekcji pozwala dodać na pozycjach 1-5 i tak samo od końca. Niestety mam sytuację, że żadna z tych opcji nie jest wystarczająca, a trzeba zmodyfikować 630 ofert... W grę wchodzi dodanie sekcji na pozycji więcej niż 5 od góry, lub dodanie na pozycji 5tej, a potem przesuniecie o 3 niżej. Niestety przesuwanie ręcznie w 630 aukcjach zajmie około 2.5 godziny klikania idealnie w tempo... Nie wiem czy jestem w stanie, aż tak przejść w tryb człowieka-robota... 😅 Cytuj Link to postu
Bartosz Rosa 1 770 Napisano 23 Czerwca 2022 Udostępnij Napisano 23 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Najszybciej - program do nagrywania makra, nagrać sekwencję ruchów przesuwającą sekcję i przechodzącą do następnej aukcji, odpalić i iść do domu . 1 Cytuj Link to postu
Aga Zgaga 90 Napisano 23 Czerwca 2022 Udostępnij Napisano 23 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Cześć, a nie lepiej poprzez szablon aukcji to zrobić. podepniesz taki szablon jako domyślny do towaru w Sello i nawet, jeżeli kiedyś będziesz potrzebował zrobić zmiany w opisie, bo np. napiszesz "Piękna hoinka z bąbkami", to w łatwy sposób będziesz mógł to poprawić, poprawiając błąd bezpośrednio w Towarze, w opisie Powiem więcej jeżeli korzystasz z Subiekta Nexo (nie znam GT) i tam w pełnej charakterystyce towaru trzymasz opis, to wystarczy taki opis podzielić na sekcję, wykorzystując niestandardowy ciąg znaków, np: #1 tutaj opis w sekcji pierwszej #2 tutaj opis w sekcji drugiej #3 itd... Następnie w szablonie w pierwszej sekcji wpisujesz tag: [Towar::Opis | substr_between=`#1--#2`] Jest to pierwsza sekcja, gdzie w opisie pojawi się wszystko co zawiera się między #1, a #2 W kolejnej sekcji zastępujesz `#1--#2` na `#2--#3`, wtedy w opisie aukcji pojawi się wszystko z Subiekta, co zawiera się między znakami #2, a #3 itd... I powyższym sposobem można dodać sekcję na pozycji, w Twoim przypadku 8, w 630 aukcjach, poprawiając tak naprawdę tylko jeden opis :) Cytuj Link to postu
Bartosz Rosa 1 770 Napisano 23 Czerwca 2022 Udostępnij Napisano 23 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji To oczywiście jest opcja najlepsza - mieć dane źródłowe w opisie towarów. Ale zakładam, że tutaj ich nie ma. Spróbuję coś jutro wymyślić. Cytuj Link to postu
Aga Zgaga 90 Napisano 23 Czerwca 2022 Udostępnij Napisano 23 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji 6 minut temu, Bartosz Rosa napisał: To oczywiście jest opcja najlepsza - mieć dane źródłowe w opisie towarów. Ale zakładam, że tutaj ich nie ma. A no tak. Nie pomyśleliśmy o tym Cytuj Link to postu
Maciej Kuc 2 Napisano 23 Czerwca 2022 Autor Udostępnij Napisano 23 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Niestety każda aukcja jest inna, w różnych miejscach. Są to oferty komputerów, więc tu inny dysk, tam inny RAM etc... Stąd nie ma żadnego podpięcia do towarów i szablonów. Sekcja, którą trzeba dodać jest za to taka sama dla każdej oferty, i ma trafić w to samo miejsce, a konkretnie w 10. miejsce od góry. Tak koncepcyjnie, to najlepszy byłby skrypt, bazujący na tym co robi opcja wstawienia sekcji z menu zmian zbiorczych, ale zmodyfikowany w taki sposób, żeby właśnie dodać sekcję na pozycję 10. zamiast 5. Problem w tym, że nie mam ani wiedzy, ani znajomości tematu na tyle głębokiej, żeby samemu rozkminić jak takie coś przeprowadzić. 😭 Cytuj Link to postu
Bartosz Rosa 1 770 Napisano 24 Czerwca 2022 Udostępnij Napisano 24 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Na jakim serwerze SQL działa Sello? Był instalowany jakiś nowszy serwer typu SQL 2019? Cytuj Link to postu
Maciej Kuc 2 Napisano 24 Czerwca 2022 Autor Udostępnij Napisano 24 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Ummm, serwer korzysta z SQL, który jest instalowany domyślnie z pakietem INSERT GT w wersji 1.66 SP3 HF3. Cytuj Link to postu
Bartosz Rosa 1 770 Napisano 24 Czerwca 2022 Udostępnij Napisano 24 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Było by nieco prościej gdyby to był serwer SQL 2017+, bo obsługuje on format JSON i można tam łatwiej na opisie operować (który jest zapisany jako właśnie JSON). Cytuj Link to postu
Maciej Kuc 2 Napisano 24 Czerwca 2022 Autor Udostępnij Napisano 24 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Do serwera dostępu nie mam, a dogadywanie się z szefem, o zmienianie SQL'a, to była by jeszcze większa strata czasu. 😅 Chyba po prostu przeklikam się przez te oferty, pewnie faktycznie makro ogarnę. Dziękuję za wszelkie informacje. P.S. Sugestia do któregoś patcha: przerobić wybór miejsca do wstawienia nowej sekcji (w ramach zmian zbiorczych) z listy ograniczonej do kilku predefiniowanych pozycji na np. miejsce do wpisania pozycji wyrażonej liczbą? Cytuj Link to postu
Bartosz Rosa 1 770 Napisano 24 Czerwca 2022 Udostępnij Napisano 24 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Dobra, coś tam wymodziłem :), ale zalecam zrobienie archiwizacji bazy przed rozpoczęciem zabaw, bo może to nieodwracalnie uszkodzić opisy, gdyby coś poszło nie tak. Na początek trzeba dodać do bazy nową funkcję, wykonując poniższy skrypt: CREATE FUNCTION charindex2 ( @TargetStr nvarchar(max), @SearchedStr nvarchar(32), @Occurrence int ) RETURNS int as begin declare @pos int, @counter int, @ret int set @pos = CHARINDEX(@TargetStr, @SearchedStr) set @counter = 1 if @Occurrence = 1 set @ret = @pos else begin while (@counter < @Occurrence) begin select @ret = CHARINDEX(@TargetStr, @SearchedStr, @pos + 1) if @ret = 0 return(@ret) set @counter = @counter + 1 set @pos = @ret end end RETURN(@ret) end umożliwia ona wyszukiwanie n-tego wystąpienia fragmentu tekstu - przyda się do wyszukiwania n-tej sekcji w opisie. Następnie należy zmianami zbiorczymi dodać nową sekcję na pierwszej pozycji. Po tym wykonać poniższy skrypt SQL, który skopiuje pierwszą sekcję na pozycję 11 (czyli 10 bez pierwszej sekcji) dla aukcji o nazwie wpisanej na końcu (należy tam wpisać nazwę aukcji testowej, znajdującej się w aukcjach przygotowanych) oraz dla wybranego konta Allegro update au_Allegro set aal_Description = stuff(convert(nvarchar(max),aal_Description), dbo.charindex2('{"items":',aal_Description, 11), 0, substring(aal_Description,dbo.charindex2('{"items":', aal_Description, 1), dbo.charindex2('{"items":',aal_Description, 2) - dbo.charindex2('{"items":',aal_Description, 1))) from au_Allegro where aal_AuctionId in (select au_id from au__auction join reg__Registration on au_RegId = reg_id where au_State = 0 and au_type = 10 and dbo.charindex2('{"items":', aal_Description, 11) <> 0 and reg_username = 'TUTAJ NAZWA KONTA' and au_Title = 'TUTAJ PODAĆ NAZWĘ TESTOWEJ AUKCJI') Sprawdzić czy to jest to o co chodziło. Usunąć zmianami zbiorczymi sekcję pierwszą. Wysłać tę aukcję do Allegro - aby upewnić się, że opis przeżył modyfikacje . Jeśli wszystko przebiegło w porządku to można wykonać poniższy skrypt, który zmodyfikuje opisy we wszystkich przygotowanych, niegotowych do wystawienia dla wybranego konta Allegro: update au_Allegro set aal_Description = stuff(convert(nvarchar(max),aal_Description), dbo.charindex2('{"items":',aal_Description, 11), 0, substring(aal_Description,dbo.charindex2('{"items":', aal_Description, 1), dbo.charindex2('{"items":',aal_Description, 2) - dbo.charindex2('{"items":',aal_Description, 1))) from au_Allegro where aal_AuctionId in (select au_id from au__auction join reg__Registration on au_RegId = reg_id where au_State = 0 and au_type = 10 and dbo.charindex2('{"items":', aal_Description, 11) <> 0 and reg_username = 'TUTAJ NAZWA KONTA') Na koniec, można usunąć dodaną na początku funkcję drop function charindex2 1 Cytuj Link to postu
Maciej Kuc 2 Napisano 24 Czerwca 2022 Autor Udostępnij Napisano 24 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji O, wow, ok, przetestuję. Najpierw jednak kluczowe pytanie: skrypt kopiujący sekcję z pozycji 1 na 11 (już w wersji bez podawania konkretnej aukcji, tylko dla wszystkich) zmodyfikuje wszystkie przygotowane aukcje bez względu na konto Allegro? Czy status "gotowe do wysłania" lub "nie gotowe do wysłania" ma znaczenie? Pytam, bo pod Sello mamy podpięte 4 konta Allegro. Cytuj Link to postu
Bartosz Rosa 1 770 Napisano 24 Czerwca 2022 Udostępnij Napisano 24 Czerwca 2022 w Zbiorcze przesunięcie sekcji w opisie aukcji Poprawiłem powyższe tak aby uwzględniały konto. Dotyczy to wszystkich z danego konta, przygotowanych, niegotowych do wystawienia. 1 Cytuj Link to postu
Polecane posty
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.
Uwaga: Twój wpis zanim będzie widoczny, będzie wymagał zatwierdzenia moderatora.