Jump to content

R4xx4r

Members
  • Posts

    28
  • Joined

  • Last visited

Everything posted by R4xx4r

  1. Nice - Thank you so much! I'll take a closer look on it when I'm back at work on monday. It looks like the thing I tried, so I'll figure out what I did wrong THANK YOU!
  2. Hello and good morning, After I tried it for several hours without any success, Do you guys maybe have an hint or solution for my problem? What I wanna achieve: I have products whith the same name (different reference) which are different by some features and the customer wants an extra column in the product grid so he knows which one is the correct before he click on the link. ( I know normally you would make variants, but thats not an option for this customer ...) What I tried: hookActionAdminProductsListingFieldsModifier but I didnt get any output if i dump params or die(); so it seems that this hook is not executed, or at least its not executed as i expect it I tried the FormBuilderModifier hook this: https://github.com/PrestaShop/demo-cqrs-hooks-usage-module/blob/master/ps_democqrshooksusage.php just with the hook actionProductFormBuilderModifier also no dump and die if I call the product listing (for customer it works) manipulate core like: but here i also had some troubles and to be honest im not a fan of manipulating core files, for things like adding a simple colum How would you solve this task? Thanks in advance!
  3. Hallo, Schau dir https://addons.prestashop.com/de/rechtssicherheit/24853-advanced-cookie-banner-fur-cookie-regeln-dsgvo-gdpr.html mal an. Das kann die nötigsten Dinge und hatten wir auch schon das ein oder andere mal im Einsatz. LG
  4. Hallo, Das ist eben eines der Probleme, dass wir das nicht wirklich schaffen. Verschieben und ausblenden usw ist gar kein Ding. Wir haben uns dann an folgendes Repo gehalten: https://github.com/PrestaShop/demo-cqrs-hooks-usage-module weil hier auch so etwas in die Art gemacht wird. Also hier fügen sie über den `hookActionCustomerGridDefinitionModifier` eine Toggle hinzu - soweit macht das alles auch Sinn. Leider haben wir es aber dann nicht geschafft mal eine neue Spalte anzulegen für eben zB `id_order` weil immer ne Meldung kam, dass diese `id_order` nicht im Customer Context vorhanden ist - was ja auch wieder stimmt. Ich frag meinen Arbeitskollegen morgen ob ich vlt das Snippet das wir haben bekomme (war pair programming / debugging), dass ich es besser an hand von dem Snippet erklären kann wo wir scheitern. Ich vermute es ist was ganz kleines und wir haben einfach nur in der Doku oder dem oben genannten Repo übersehen
  5. Hallo Liebe Community, Wir haben die Aufgabe, dass wir im Customer Template (siehe folgenden Screenshot) in der Tabelle noch eine Spalte hinzufügen sollen wo die letzte Bestellung des jeweiligen Users steht (also nur die ID dazu). Wir verwenden einen PS mit der Version 1.7.7.1 Nach ein wenig Recherche haben wir folgenden Link gefunden https://devdocs.prestashop.com/1.7/development/components/grid/tutorials/modify-grid-in-module/ wo eigentlich steht wie das gehen sollte. Leider laufen wir in ein Problem nach dem anderen und werden nicht schlau daraus. Ich befürchte das man in dieser CustomerGridDefinition NICHT auf Orders zugreifen kann, sehe aber vor lauter debuggen auch den Wald vor lauter Bäumen nicht mehr. Hat das vlt schon mal jemand von euch gemacht und / oder hat ein Tutorial / Tips dazu ?
  6. Hi, I have no idea if this could help, but I also had a problem with category images and after I "rebuild" the images it works. So you can try: log in into backend optimization -> design -> images on the bottom you have a button with something like rebuild thumbnails (i use it in german so i dont know the exactly naming in EN sry) This solved a few image problems and also some image not found issues for me.
  7. Hallo, Ich weiß ich bin spät dran, falls es noch immer relevant ist und der Tipp von @JBW nicht geholfen hat mit dem XHR sprich Ajax Call checken auch keine Erkenntnis gebracht hat: Mir fallt auf du schreibst Localhost mit einem großen L, man sollte hier ein kleines L stehen haben, oder wenn das nicht geht liegt es auch manchmal daran, dass er localhost nicht auflösen kann und du die lokale IP 127.0.0.1 schreiben musst. Vielleicht hilft dir das ja oder anderen die über diesen Thread stoßen und das gleiche Problem haben
  8. Ich nehme alles zurück, es war spät und ich habe die Methode übersehen wo ich es gemacht habe. Sprich ich habe das ganze an einer Stelle übergeben wo einfach kein Frontend drauf zugreift - funktioniert also alles wie gedacht
  9. Hallo liebe Community, Ich arbeite gerade an einem Modul wo ich verschieden Features an einer Stelle aktivieren, deaktivieren und konfigurieren kann. Einige davon sind rein JS lastig und ich wollte mir ein Objekt mit der Konfiguration in eine globale JS Variable speichern, dass ich dann ein meinem JS File darauf zugreifen kann. Sprich: Ich lade die Config aus der DB Ich prüfe ob das Feature aktiv sein soll Wenn es aktiv ist lade ich ein JS File und übergebe das Feature Config Objekt ans JS (welches auch nur dann geladen wird wenn das Feature aktiv ist) Soweit so gut wollte ich das Objekt per Media::addJsDef([ 'features' => $this->active_features ]); übergeben. Ich habe diese Variable auch zur Verfügung aber nur im Backend und nicht im Frontend wo ich diese Infos brauche. Gibt es/Kennt ihr eine Möglichkeit wie ich aus meinem custom Modul spezielle Daten an ein JS übergebe welches nur Frontend geladen werden soll? Vielen Dank im Voraus LG, Daniel
  10. Ah okay, dann ist es leider wie wir daweil angenommen haben, schade. Aber vielen Dank für den Tipp, da werd ich mich auf alle Fälle schlau machen wie die das machen - DANKE LG und einen schönen Tag wünsche ich dir
  11. Hallo, Wir stehen vor der Herausforderung, dass wir eines unserer Custom Module (welches via Github versioniert wird und auf einem eigenen Server liegt) upzudaten. Das neue Zip File liegt also bei uns am Server. Wie überreissen jetzt die Shops, dass dieses File aktualisiert wurden und wir einen Update Button sehen? Habt ihr Ideen oder Lösungsansätze für dieses Problem? Vielen Dank im Voraus! LG, Daniel
  12. Hi everbody, We got the challenge to make one of our custom modules updatable. It's versioned via github and the module.zip (of the actual version) itself is available via one of our servers. Now we made changes and want to update the module in every project we use it via "Update me" (or however this button is called) button. What is the best way to achieve this? Do you guys have any ideas? How does PrestaShop check if a new Version is available on our server ? Best, Daniel
  13. Dear community, We are working on statistic problems in one of our projects. It seems that partial refunds are not included in the statistics on the dashboard and the controll center page and because of this the total revenues are not 100% correct. In additional we found that der are differences between the dashboard values and the controll center values (but I think this is cause of other customisations in other modules) Do you know or can recommend a module which includes all factors/states (cancel, refunds, partial refunds, ...) in the statistics to get a 100% correct overview? We use PrestaShop version 1.7.3.1 in this project (too much customisations to update clean) Thanks for your input and ideas! We wish you a nice friday and a nice weekend! Best, Daniel aka. R4xx4r
  14. Hallo liebe Community, Wir haben in einem Projekt ein Problem mit den Werten welche in der Statistik (Kontrollzentrum, Dashboard) ausgespuckt werden. Uns ist aufgefallen, bzw es scheint danach, dass Teil Refundierung NICHT in diesen Statistiken berücksichtigt werden und daher natürlich der Umsatz und alles nicht zu 100% korrekt ist. Des weiteren ist uns aufgefallen, dass die Werte zwischen dem Dashboard und dem Kontrollzentrum unterschiedlich ist (das scheint aber aus anderen custom Anpassungen zu kommen) Könnt ihr mir/uns vlt. ein Modul empfehlen welches Umsätze usw exakt darstellt und alle Faktoren (Stornierung, Teil Stornierung, Refundierung, Teil Refundierung, versendet, ....) berücksichtigt? PS Version wo es laufen muss ist 1.7.3.1 Vielen Dank für euren Input und ich wünsche euch schon mal einen schönen Freitag und ein schönes Wochenende! LG, Daniel aka. R4xx4r
  15. Hi community, I hope it's just one small question: You can configure different variants for one product (e.g. blue, red, green shirt) and each of them has its own stock. Also you have to set one of them as default, so it's shown on detailpages and category pages first As soon as the default product is out of stock its marked as "not available". I mean thats not wrong BUT is there a possibility (without a self developed module, just with core features) to change the default variabt automatically if the chosen one is out of stock? If not do you know a module which can handel this? Or do I have to develop a module which checks all stocks and assigns the right one to the template ? Thanks and wish you all a good day, Daniel aka R4xx4r
  16. Hallo Liebe Community, Ich habe eine Frage an euch. Mann kann ja zu jedem Produkt verschiedenen Varianten erstellen. Allerdings ist immer eine Variante als default gewählt welche dann auf der Kategorieseite und auch auf der Detailseite als erstes gewählt wird. Der Lagerstand variiert natürlich auch pro Variante und kann seperat definiert werden. Sobald die defautl Variante auf 0 Stk. fällt wird es aber auf der Übersichtsseite als "Nicht Verfügbar" gelistet, was ja theorethisch auch irgendwie stimmt, irgendwie aber auch nicht da es ja in anderen Farben vorhanden ist. Gibt es hier eine Möglichkeit welche in der "Standard PrestaShop" (ohne zusätzliche Module) Version machbar ist? Kennt ihr ein Modul was das handeln kann? Oder mussich hier ein eigenes Modul schreiben wo ich im passenden Controller die aktuellen Varianten abgleiche und wenn die default Stk. Anzahl auf 0 fällt eine andere Variante als neues default setze (bzw. habt ihr andere Ideen) ? Vielen Dank und LG, Daniel aka R4xx4r
  17. I just found the solution I "faked" a search and then checked with the data i chose in the backend - here is the code: /** * creates relevant product information for frontend output * * @param array $allSelectedProductIds array with all id's of the selected products * @param int $languageId language id of the shop you are in * * @return array all product information we need for our frontend rendering */ public function getFrontendProductInformation($allSelectedProductIds, $languageId) { // set default category Home $category = new Category((int)2); // create new product search proider $searchProvider = new CategoryProductSearchProvider( $this->context->getTranslator(), $category ); // set actual context $context = new ProductSearchContext($this->context); // create new search query $query = new ProductSearchQuery(); $query->setResultsPerPage(PHP_INT_MAX)->setPage(1); $query->setSortOrder(new SortOrder('product', 'position', 'asc')); $result = $searchProvider->runQuery( $context, $query ); // Product handling - to get relevant data $assembler = new ProductAssembler($this->context); $presenterFactory = new ProductPresenterFactory($this->context); $presentationSettings = $presenterFactory->getPresentationSettings(); $presenter = new ProductListingPresenter( new ImageRetriever( $this->context->link ), $this->context->link, new PriceFormatter(), new ProductColorsRetriever(), $this->context->getTranslator() ); $products = array(); foreach ($result->getProducts() as $rawProduct) { $productId = $rawProduct['id_product']; if(in_array($productId, $allSelectedProductIds)) { $product = $presenter->present( $presentationSettings, $assembler->assembleProduct($rawProduct), $this->context->language ); array_push($products, $product); } } return $products; } Hope this helps somebody out there If you have questions - just ask and I try to help Best
  18. Ich beantworte meine Frage selbst, da ich es jetzt doch geschafft habe Hier meine Methode mit der ich das ganze mache. /** * creates relevant product information for frontend output * * @param array $allSelectedProductIds array with all id's of the selected products * @param int $languageId language id of the shop you are in * * @return array all product information we need for our frontend rendering */ public function getFrontendProductInformation($allSelectedProductIds, $languageId) { // set default category Home $category = new Category((int)2); // create new product search proider $searchProvider = new CategoryProductSearchProvider( $this->context->getTranslator(), $category ); // set actual context $context = new ProductSearchContext($this->context); // create new search query $query = new ProductSearchQuery(); $query->setResultsPerPage(PHP_INT_MAX)->setPage(1); $query->setSortOrder(new SortOrder('product', 'position', 'asc')); $result = $searchProvider->runQuery( $context, $query ); // Product handling - to get relevant data $assembler = new ProductAssembler($this->context); $presenterFactory = new ProductPresenterFactory($this->context); $presentationSettings = $presenterFactory->getPresentationSettings(); $presenter = new ProductListingPresenter( new ImageRetriever( $this->context->link ), $this->context->link, new PriceFormatter(), new ProductColorsRetriever(), $this->context->getTranslator() ); $products = array(); foreach ($result->getProducts() as $rawProduct) { $productId = $rawProduct['id_product']; if(in_array($productId, $allSelectedProductIds)) { $product = $presenter->present( $presentationSettings, $assembler->assembleProduct($rawProduct), $this->context->language ); array_push($products, $product); } } return $products; } sprich ich erzeuge mir einfach eine art "fake suche" und gleiche das Suchergebnis, dann mit den von mir gewählten Produkten ab. Ich hoffe, dass hilft vlt doch dem ein oder anderen. Wenn nicht gerne fragen und ich versuche es genauer zu erklären LG
  19. Hi everybody, I'm pretty new to PrestaShop - so sry if i ask basic things. I'm currently working on a module which should display products (you can choose in the backend area) as additional section in the default products template - like "highly recommended products". I finished the whole Backend part have an array with my product ID's . As I mentioned before I wanna use the default templates which are available after a fresh installation and so I the template which is placed here: themes\classic\templates\catalog\_partials\products.tpl Now my big problem is: I'm not able to get the data like it should be ... If I debug e.g. the products which are displayed in the default search behaviour, which uses exactly this template too - I see something like object(PrestaShop\PrestaShop\Adapter\Presenter\Product\ProductListingLazyArray)#323 (11) { ["imageRetriever":"Pr ..... So we have our product data as a ProductListingLazyArray. I get my product data by looping over my array and make but as I get my products with $product = new Product($productId, true); So of course I don't have a ProductListingLazyArray - I just have a product as an product object. Do you have any idea - how I can "transform" my product object to this ProductListingLazyArray? Or is it even the right way ? THANKS for your help, ideas and recommendations! Wish you a good start into the week! Best
  20. Hallo ihr, Neue Woche ... neue Frage ... Ich hoffe bald macht es klick und ich kann mein Wissen zurück geben und euch auch helfen DANKE für eure Geduld! Ich arbeite gerade an einem Modul welches mir ausgewählte Produkte in das default products.tpl injecten soll. So eine Art "TOP PRODUKTE" section. Das Backend ist fertig und ich bekomme auch mein Array an Produkt ID's zurück. Das Ziel ist es jetzt die Produktinfos zu bekommen und an das default template einer frischen PrestaShop Installation zu übergeben. Hier dachte ich an themes\classic\templates\catalog\_partials\products.tpl Jetzt ist mein großes Problem, dass ich es nicht schaffe meine Daten in die gleiche Struktur zu bekommen wie es das Standard Template benötigt. Wenn ich zB Die Suche debugge - welche auch dieses Template nutzt - sehe ich, dass ein Product vom Typ object(PrestaShop\PrestaShop\Adapter\Presenter\Product\ProductListingLazyArray ist, sprich ich habe dieses ProductListingLazyArray und daraus zieht er sich dann in den einzelnen Templates alle Infos wie {$product.id_product} oder {$product.url} usw. Da ich "meine" Produkte mit $product = new Product($productId, true); erstelle habe ich aber natürlich kein ProductListingLazyArray sondern ein Objek vom Typ Product. Habt ihr vlt einen Tipp wie ich das umwandeln kann oder bin ich komplett auf dem falschen Weg? DANKE und einen schönen Start in die Woche! LG,
  21. Da hast du natürlich recht - das war auch der Weg den ich gehen wollte, habe mich dann aber ziemlich verrannt, was sicher auch daran liegt, dass ich neu bin was PrestaShop angeht und mir da sicherlich noch Basics fehlen und er "AAAAAHHHH" Moment noch kommen wird 😉 Da es hier aber um maximal 10 Produkte gehen wird nehme ich an, dass es sich in Grenzen halten wird mit dem Performanceverlust. Aber ich werde es auf alle Fälle nochmal den anderen Weg probieren, den so ein Fall wo das sinnvoll ist kommt sicher schneller als ich glaube hehe DANKE für den Input! Wünsche dir ein schönes Wochenende!
  22. Guten Morgen, VIELEN DANK! Ja der zweite Parameter hat mich einen Schritt weiter gebracht und war der entscheidende Hint 😉 was 4 Buchstaben alles bewirken können. Ich wünsche dir einen schönen Freitag und ein tolles Wochenende! LG
  23. Hallo liebe Community, Ich bins wieder mit einer neuen Frage. Ich versuche mich gerade an Plugins und experimentiere ein wenig dem erstellen von Modulen. Jetzt habe ich folgendes Problem: Ich bekomme einfach nicht alle relevanten Daten. Etwas konkreter: Ich kann im Backend Artikel konfigurieren, welche ich gerne dem default "product-list.tpl" geben möchte. Quasi wie es auch die Suche macht oder andere Stellen. Jetzt habe ich mir anhand mit `Product::getProducts()` mal alle Produkte geholt, picke mir dann anhand meiner gewählte ID aus dem Backend das jeweilige Produkt. Wenn ich dieses dann aber an das Template gebe sieht es definitv anders uas und es fehlen Bilder, Links, richtige Preise usw. Habt ihr vlt einen Ansatz, bzw seht ihr ob an meiner Idee etwas grundlegendes falsch ist? VIELEN DANK! LG
  24. Mittlerweile haben wir die Lösung gefunden wie wir dieses Problem lösen. Der Context war einfach falsch gesetzt. dieses wurde wie folgt angepasst und siehe da, wir haben den richtigen Context: switch ( $shop ) { case "DE": $id_shop = 1; $id_lang = 1; $replace = '.com/de/'; Context::getContext()->country = new Country((int)1); // ID 1 für Deutschland break; case "AT": $id_shop = 5; $id_lang = 1; $replace = '.com/at/'; Context::getContext()->country = new Country((int)2); // ID 2 für Österreich break; case "IT": $id_shop = 6; $id_lang = 4; $replace = '.com/it/'; Context::getContext()->country = new Country((int)10); // ID 10 für Italien break; } Wenn man die ID's der Länder nicht weiß, kann man sich diese aber auch recht schnell mit folgendem Snippet holen: echo '<pre>'; var_dump(Country::getCountries()); die(); ACHTUNG: Man darf nicht eingeloggt sein im Frontend, da sonst die Adresse des eingeloggten Users genommen wird - Diese dürfte eine höhere Gewichtung haben. Ich hoffe, ich konnte vlt. dem ein oder anderen damit helfen! LG
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More