Jump to content
  • 0

Po przeniesieniu sklepu .brak produktów w katalogu, od strony sklepu - OK.


grayling

Question

Przeniosłem sklep na inny serwer (i inną domenę). Po zainstalowaniu czystej Presty 1.7.8.8 przeniosłem z bazy starego sklepu grupy tabel ps_category_*, ps_cms_*, ps_image_*, ps_product_*, ps_stock_*. Robiłem to już na paru sklepach, problemów nigdy nie było (oczywiście poza koniecznością późniejszego dopieszczania wyglądu, ale to akurat normalka). Przeniosłem również katalog img ze starego sklepu.

No i tym razem - zonk. Od strony klienta sklep wygląda i działa jak należy, wszystkie produkty obecne. W Panelu Administratora kategorie są, ale nie ma ani jednego produktu (przy filtrowaniu według kategorii i bez filtrowania). Tryb debugowania nie pokazuje żadnych błędów.

Wiadomo, że sklep bez możliwości dostępu do produktów od strony BO jest na dobrą sprawę bezużyteczny.

Bez bicia przyznaję, że od rana powtórzyłem to już trzykrotnie, przenosząc wspomnianą paczkę tabel w całości i na raty, bujając się przez wersje PHP od 5.6 do 8.0 - nic, czyli za każdym razem ro samo. Dojechałem chyba do ściany, pomysły mi się skończyły.

Mógłby mnie ktoś jakoś zawstydzić (bo błąd, jaki robię, jest prawdopodobnie beznadziejnie głupi)?

 

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0

Dzięki, idę już na każde rozwiązanie.😀

O ile pamiętam, poprzednie migracje robiłem chyba na wersjach wcześniejszych (gdzieś tak 1.7.8.2 - 1.7.8.6), na 1.7.8.8 robię to pierwszy raz. Bardzo możliwe, że przyczyna jest właśnie tutaj (oby).

Jeszcze raz wielkie dzięki.

Link to comment
Share on other sites

  • 0

Dzisiaj raczej już nie - muszę wywalić pliki z 1.7.8.8, wrzucić i zainstalować wersję wcześniejszą, wrzucić na serwer ok. 2000 zdjęć, czyli trochę to zajmie.

Czy przed przeniesieniem tabel ze stary bazy czyścić nową bazę pscleanerem (kategorie i produkty przykładowe)? Zdaje się, że przy poprzednich migracjach tego nie robiłem (tylko wywalałem te wszystkie dane przykładowe), dzisiaj tak mnie jakoś podkusiło. Prawdopodobnie bez znaczenia, ale jak się weźmie pod uwagę łączny czas, jaki zajmuje każde takie podejście, lepiej zapytać. Może zdarzyły Ci się jakieś nieprzyjemne siupy z tym oczyszczaczem?

 

Link to comment
Share on other sites

  • 0

Po drobnych zawirowaniach z przeinstalowaniem sklepu, wracam:

nic się nie zmieniło. W sklepie jest komplet produktów, zachowują się porządnie - wszystkie w odpowiednich kategoriach, podkategoriach, wszystkie mają komplet zdjęć i opisów, na stronie głównej można bez problemu wyświetlać produkty nowe, polecane, czy najlepiej sprzedawane. Czyli baza komplet informacji o każdym produkcie ma - ale nie ma do nich dojścia przez panel administracyjny. Bez filtrowania czy z filtrowaniem, w żadnej kategorii nie ma żadnego produktu.

Podejrzenie, że coś się pokaszaniło podczas transferowania danych na serwer raczej odpada - katalogi classes/, controllers/ i vendors/ nadpisałem plikami z czystej paczki instalacyjnej. To samo zrobiłem nawet z szablonem (póki co classic, bo na razie nie ma sensu ruszać z tym dalej). Sprawdziłem po kolei wersje PHP od 7.0 do 7.4 - produktów w katalogu BO zwyczajnie nie ma.

Mówiąc Ferdkiem: no jak to ich nie ma, jak są?

Ma ktoś jakieś podejrzenia co do przyczyny takich cudów?

Link to comment
Share on other sites

  • 0

Zobacz czy w ogóle masz dostęp do jakiegokolwiek produktu i jeśli masz to czy zapisanie go powoduje pojawienie się na liście, do produktu możesz się dostać poprzez dodania do url panulu admina: index.php/sell/catalog/products/100 gdzie ostatnia liczba to id produktu.

Zakładam że problem jest w bazie jak możesz to wrzuć tu jeden rekord z tabeli ps_product i ps_product_shop.

Link to comment
Share on other sites

  • 0

Wywołanie wspomnianego przez Ciebie url-a odsyła do strony głównej panelu admina.

ps_product, struktura rekordu:
ps_product` (`id_product`, `id_supplier`, `id_manufacturer`, `id_category_default`, `id_shop_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ean13`, `upc`, `ecotax`, `quantity`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `reference`, `supplier_reference`, `location`, `width`, `height`, `depth`, `weight`, `out_of_stock`, `quantity_discount`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_is_pack`, `cache_has_attachments`, `is_virtual`, `cache_default_attribute`, `date_add`, `date_upd`, `advanced_stock_management`, `pack_stock_type`)

zawartość rekordu:
(122, 0, 0, 26, 1, 6, 0, 0, '', '', '0.000000', 0, 1, '1188.727273', '0.000000', '', '0.000000', '0.00', 'NT-12-20', '', '', '0.000000', '0.000000', '0.000000', '0.000000', 2, 0, 0, 0, 0, 1, '404', 0, 1, '0000-00-00', 'new', 1, 1, 'both', 0, 0, 0, 0, '2022-04-20 22:44:12', '2022-09-20 19:00:29', 0, 3)

product_shop, struktura rekordu:
`ps_product_shop` (`id_product`, `id_shop`, `id_category_default`, `id_tax_rules_group`, `on_sale`, `online_only`, `ecotax`, `minimal_quantity`, `price`, `wholesale_price`, `unity`, `unit_price_ratio`, `additional_shipping_cost`, `customizable`, `uploadable_files`, `text_fields`, `active`, `redirect_type`, `id_product_redirected`, `available_for_order`, `available_date`, `condition`, `show_price`, `indexed`, `visibility`, `cache_default_attribute`, `advanced_stock_management`, `date_add`, `date_upd`, `pack_stock_type`)

zawartość rekordu:
(122, 1, 26, 6, 0, 0, '0.000000', 1, '1188.727273', '0.000000', '', '0.000000', '0.00', 0, 0, 0, 1, '404', 0, 1, '0000-00-00', 'new', 1, 1, 'both', 0, 0, '2022-04-20 22:44:12', '2022-09-20 19:00:29', 3)

Zauważyłem właśnie, że na stronie sklepu nie działa szukajka. Sprawdziłem w panelu, w preferencjach szukania: indeksowane produkty: 0/258. Dodanie brakującyh produktów do indeksu: 0/258, przebudowanie całości indeksu: 0/258. Czyli niby są, ale nie są indeksowane.

Link to comment
Share on other sites

  • 0

No dobra, jakoś ugryzłem to draństwo.

Trudno powiedzieć tak na 100%, że przyczyna problemu była pojedyncza, ale w każdym razie, mówiąc Microsoftem: u mnie działa.

W sumie chodziło o przeniesienie zawartości takich tabel, jak ps_category, ps_product, ps_image (nie tylko, ale przede wszystkim). Pomysł wziąłem z pskrk.com, tam odnosiło się to do przenoszenia bazy z 1.6 do 1.7. Pomysł świetny, bo bajecznie prosty, eliminujący choćby konieczność użerania z zawsze jednak upieprzliwymi csv. Polega na utworzeniu - nazwijmy to - tabel pośrednich, o innym niż docelowy prefiksie (zastosowałem px_). Tak więc do takiej tabeli importujemy potrzebne pola (czyli id_product, id_supplier, id_manufacturer, id_category_default, id_shop_default, i tak dalej) z tabeli przenoszonej do nowej lokalizacji. Następnie tabelę pośrednią importujemy do bazy w sklepie docelowym, po czym pozostaje już tylko sql-em poprzerzucać id_product, id_supplier, i tak dalej - do tabeli z prefiksem ps_. I to byłoby tyle.

Byłoby, ale nie jest. Założyłem tak trochę z rozpędu, że siódemka to siódemka, i że we wszystkich jej kolejnych wersjach od pierwszej do ostatniej będziemy mieli identyczną strukturę baz. Nie całkiem. W poszczególnych wydaniach siódemki zdarzają się różnice w strukturze bazy, tworzonej w sklepie podczas instalacji (w moim przypadku chodziło o długości paru pól w rekordach). Użycie do przenoszenia danych tabeli pośredniej utworzonej w sklepie oryginalnym będzie powodować niezgodność struktur (chociaż, co trochę dziwne, nawet wtedy import przebiega poprawnie, phpMyAdmin nie zgłasza błędów).

Czyli tak: pustą tabelę "pośrednią" tworzymy w sklepie DOCELOWYM - kopiując samą strukturę np. ps_product do px_product (bez obecnych w tabeli danych). Taką pustą tabelę importujemy do sklepu wcześniejszego, tam sql-em wstawiamy do niej dane z pierwotnego ps_product, importujemy ją do sklepu docelowego i (znowu sql-em) kopiujemy z niej dane do tego ostatecznego ps_product. Działa.

Jeszcze jedno, bo i to mi się przy okazji przydarzyło: instalując Prestę na piechotę, instalujemy tylko język polski, ma wtedy id_lang=1. Działające u różnych hostingodawców Installatrony instalują domyślnie również angielski (wtedy on ma id_lang=1, polski dostaje dwójkę). Przy przenoszeniu sklepów z większą liczbą języków można się trochę zaskoczyć.

Gdyby ktoś wlazł na podobną minę, i gdyby chociaż trochę mu to pomogło - szczęście moje szerokie będzie jak Morze Żółte.

Pozdrawiam.

Edytowane: Opis był trochę obszerniejszy, ale nie udawało mi się go zamieścić, prawdopodobnie z powodu obecności w nim paru poleceń SQL. Po ich wyrzuceniu skrypt forum łyknął okrojoną wersję jak pelikanek.

Edited by grayling (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...