Prestashop är utan tvekan den # 1 öppna källan e-handelslösningen på webben. Det erbjuder otaliga funktioner, tillägg och teman, men dess brist på bra dokumentation har gett nykomlingar uppfattningen om att den inte kan användas. I denna artikel går jag igenom processen med att bygga ditt eget anpassade tema, samt skapa och anpassa Prestashop-moduler.
Prestashop körs på PHP och MySQL, och bygger på Smarty-motorn för dess "Mallar" (sidor). Oroa dig inte, om du inte är bekant med Smarty. Du använder det i grunden för att skapa sidor med platshållarsektioner, och Prestashop fyller i informationen när sidan laddas. Det är lätt att övergå till, om du har använt något som Handlebars eller Underscore mallar.
Jag antar att du redan har laddat ner och installerat Prestashop. Om inte, kan du hämta den senaste versionen. De har en instruktionsvideo som du kan titta på för att lära dig hur du ställer in det.
Din webbplats ska se ut som följande bild, om du ställer in Prestashop med standardinställningarna.
Processen med att bygga ditt eget tema börjar med att skapa en mapp. I din önskade webbläsare, navigera till rot Prestashop-katalogen och du hittar en mapp som heter teman
. Inuti teman
mapp, skapa en ny katalog med namnet på ditt tema. Jag ska ringa min, "Demo."
Om du lägger till en bild av din mall i den här mappen och namnger den preview.jpg
, Prestashop ska automatiskt hitta och lägga till din mall i back-end. Om det inte gör det, eller om du föredrar att lägga till bilden senare, kan du manuellt lägga till temat. För att göra detta, gå till teman alternativet under Inställningar menyn och klicka på Lägg till ny på toppen. När du är klar kommer du att se ditt tema i mitten av sidan. Aktivera det genom att helt enkelt klicka på det och trycka på Spara knapp.
Lägg till din logotyp (er) medan du är här; Du hittar det här alternativet längst ner på sidan. Du kan behöva öka gränsvärdet för filuppladdning i Prestashop (eller kanske till och med PHPs konfigurationsfil) om du har en mycket stor bild.
Smarty är en mallmotor för PHP, vilket underlättar separation av presentation från applikationslogik.
Som jag nämnde tidigare använder Prestashop Smarty för att generera sidorna. så alla mallfiler har en .tpl
förlängning. Det finns många sidor du måste skapa för att få ett komplett tema. ta en stund och se fillistan.
I slutändan bestämmer temat funktionalitet vilka sidor du ska implementera. Sidan är baserad på filerna i mappen Kontroller, och du kan åsidosätta standardinställningarna eller lägga till egna anpassade kontroller för att passa ditt tema. Men det ligger utanför ramen för denna artikel. Bland kontrollanterna i controllers \ front directory
är två mallfiler som automatiskt laddas: header.tpl
och footer.tpl
.
Huvudinnehållet på din webbplats laddas av moduler med hjälp av "Hooks".
Det finns två typer av krokar i Prestashop: action och display krokar. Dessa båda fungerar på samma sätt, men de skiljer sig i syfte. En krok ger i grunden användaren ett sätt att bifoga anpassad kod till en extern källa. Vid en handtagskrok körs någon kod som är fäst vid kroken när kroken kallas. Till exempel kommer Prestashop med en standardkrok som heter actionProductAdd
som körs när man lägger till en produkt. Så du kan bifoga en modul till denna krok om du vill skicka ett nyhetsbrev varje gång en ny produkt läggs till.
En skärmkrok är mycket likadan, men i stället för att ansluta en funktion till en händelse kopplar du en funktion till en viss plats i mallen. Med andra ord kommer Prestashop att ringa din modul med en viss punkt (till exempel höger sidofält) och allt som returneras läggs in på sidan. Du kan se alla nuvarande registrerade krokar genom att gå till Moduler> Positioner sida i back admin.
Personligen tycker jag att det är bäst att börja med ett vanligt HTML-tema. Detta är inte ett krav, men jag rekommenderar det starkt av ett antal anledningar:
preview.jpg
filen direkt.Följande bild är en bild av mitt exempel HTML-mall:
Och här kan du se hur jag ska dela upp det i Prestashop krokar:
Nu ska vi skapa header.tpl
filen i din teman katalog och fyll i den med din teman header. Detta inkluderar doctype
, område och allt i kroppen som du vill visa på alla sidor. Här är ett exempel
header.tpl
fil:
Prestashop webbplats if isset ($ css_files) foreach from = $ css_files key = css_uri item = media / foreach / if om isset ($ js_files) foreach från = $ js_files item = js_uri / foreach / if$ HOOK_TOP
Det finns några saker att påpeka i den här koden. Jag preprended CSS filnamnet med $ Css_dir
. Detta är en Smarty-variabel som pekar på en mapp som heter css
inuti ditt temas katalog, där alla dina CSS-filer ska gå.
Nästa rad använder Smartys för varje
loop för att lägga till alla CSS-filer i de aktiverade modulerna. Det är värt att notera det, om du skapar en CSS-fil som heter global.css
i css
katalogen lägger slingan automatiskt den filen till sidan.
Några rader senare, en annan för varje
loop behandlar JavaScript-filerna i js
katalog och lägger till dem på sidan. I det sista avsnittet öppnar jag kroppsdelen och definierar en krok för menymodulen. Slutligen slutar jag med att visa webbplatsens logotyp.
Om du inte är en Prestashop veteran undrar du förmodligen var jag kommer upp med dessa variabler. Som jag sa tidigare saknas Prestashops dokumentation, men de tillhandahåller ett felsökningsverktyg som du kan starta genom att lägga till Debug
till någon av mallfilerna. När du öppnar motsvarande sida i din webbläsare får du en popup med en lista över alla variabler för den specifika mallen. Detta gör det möjligt för dig att snabbt (med hjälp av ctrl / cmd-F hjälper dramatiskt) identifiera vilka variabler som definieras, liksom deras värden.
Nu ska vi skapa footer.tpl
mall. Jag ska hålla det här enkelt och bara stänga och
element, men gärna lägga till allt du vill visa längst ner på varje sida. Detta kan innehålla allt från krokar till anpassad JavaScript; Det finns inga gränser för vad du kan lägga här.
Den sista filen jag vill implementera är index.tpl
fil. Det här är "hemsidan" -filen som visas när en användare får tillgång till rotten på din webbplats. I standard Prestashop-temat laddas sidofältet i header.tpl
filen, och den faktiska indexmallen innehåller bara ett samtal till displayHome
krok. Det här är bra om du vill att sidospåren ska vara på alla sidor, men igen vill jag betona att krokarna implementeras på egen hand. Du behöver inte implementera någon krok, och du kan lägga till egna krokar om du behöver mer än standardfunktionen.
När du skapar din indexsida måste du bestämma vilka delar som är statiska och vilka delar som ska laddas dynamiskt genom moduler. Jag tog bort huvudmenyn från rubriken eftersom det var något jag ville kontrollera med en modul. Så jag lade en krok där jag ville ha menyn och jag kan skapa en modul som fästs på denna krok. Du kan ladda flera objekt med samma krok. Det finns ingen anledning att lägga till flera krokar tillsammans, och du kan hantera ordern på en kroks moduler i back-end under Moduler> Positioner.
Den sista Prestashop-specifika funktionen du bör överväga är Prestashops lokaliseringsverktyg. Prestashop låter dig enkelt översätta din webbplats till flera språk genom att använda en Smarty-funktion, namngiven l
. Du använder den genom att ersätta en standardsträng med l
funktion, som sträcker strängen som en parameter. Här är ett exempel på en element, både med och utan översättning:
* Utan Översättningsverktyg *Prenumerera på oss!
* Med översättningsverktyg *l s = "Prenumerera på oss!"
Även om du inte planerar att översätta din webbplats för närvarande är det en liten förändring som gör att du enkelt kan översätta dina sidor om du senare beslutar att göra det. När du har gjort dessa ändringar till dina mallar kan du gå till Lokalisering> Översättningar sida i back-end och klicka på nationaliteten du vill översätta till.
Lägga till språk som inte är standard är enkelt, och jag täcker det i den andra delen på sidan (lämpligt namnet "Lägg till / uppdatera ett språk").
En annan fördel med att använda Prestashops lokalisering är listan över de fraser Prestashop ger dig. I stället för att gå igenom hela din webbplats kan du helt enkelt lämna listan över fraser till en modersmål i ditt önskade språk och snabbt mata in värdena, samtidigt som du aldrig rör ditt tema.
Ange nu din hemsida specifika HTML till index.tpl
, och var noga med att leverera de krokar du vill använda. Kom ihåg att använda Debug
Smarty-funktionen, om du behöver se variablerna är tillgängliga för din mall.
Nu kan du öppna en webbläsare och navigera till dina webbplatser root. Mine ser så här ut:
Det kanske inte ser ut som mycket, men du har byggt din malls yttre skal. Om din mall ser ut som en röra av objekt, är det förmodligen för att du har många moduler installerade. Som standard gör Prestashop många moduler; Jag rekommenderar att du går till modulernas sida och avinstallerar alla moduler. Oroa dig inte för att förlora dem eftersom du kan installera om dem igen genom att klicka på installeringsknappen bredvid den önskade modulen.
När du skapar ett Prestashop-tema märker du att moduler står för cirka 90% av innehållet. Det finns moduler som visar produkterna, modulerna för kundvagnen, etc. En stor del av att vara en Prestashop-människa innehåller åtminstone en fungerande kunskap om hur man anpassar modulernas utseende.
Moduler i Prestashop är inte desamma som Wordpress-widgets.
Moduler i Prestashop är inte desamma som Wordpress-widgets; Prestashops moduler kan endast fästas på krokar som modulskaparen specificerar. Om du till exempel skapar en modul som visar ett "prenumerera på nyhetsbrev" -block och du ställer in det för att gå i någon av sidfältet, kan du inte placera det i sidfältet.
Det kan verka svårt, men det finns en mycket bra anledning till det här: När du skapar en modul ger du en separat funktion för varje krok du vill använda. Till exempel, om en menymodul kan uppträda annorlunda baserat på dess plats i mallen.
Detta ger dig mycket utrymme för att anpassa en modul.
Denna praxis gör mycket mer meningsfullt om du överväger andra typer av krokar: Action krokar. Du vill självklart inte ha den funktion som körs när du lägger till en ny produkt som ska köras när en användare köper en produkt från dig. Detsamma gäller för displayhakar; varje krok har sin egen funktion, så att du gör vad du vill med den.
När du bygger ett tema finns det två sätt att lägga till moduler. Det första alternativet är att skapa din egen modul. Detta är det mer tråkiga alternativet, men du får mycket mer kontroll i slutprodukten. Å andra sidan finns över 2000 moduler i den officiella modulkatalogen (och ännu mer på tredje parts webbplatser). Chansen är bra du kan hitta något som passar dina behov.
Ditt andra alternativ är att installera en färdigmodul; Prestashop ger dig möjlighet att anpassa sitt utseende genom att överväga mallfilerna. Det här är det bästa alternativet om du inte vill börja kodning din egen modul, och det låter dig fokusera på den grafiska sidan. Jag ska täcka båda alternativen; så låt oss börja med den första.
Vi bygger en modul som visar ett konfigurerbart antal produkter på hemsidan. Det här är löst baserat på lagermodulen, men min modul går lite mer in i Prestashops underliggande klasser för att förhoppningsvis ge dig en djupare titt på processen.
Skapa först en mapp i moduler
katalog och skapa sedan en PHP-fil inuti den med samma namn som mappen. När du öppnar moduler
mappen kommer du att se en namngivningskonvention där alla moduler som enbart visar innehåll börjar med ordet "block". Detta är naturligtvis inte ett krav, men det är vettigt. Jag ska namnge min mapp blockdisplayproducts
, och inom den ska jag skapa PHP-filen med samma namn.
Öppna PHP-filen och definiera modulklassen:
namn = "blockdisplayproducts"; $ this-> tab = 'front_office_features'; $ this-> version = 1.0; $ this-> author = 'Gabriel Manricks'; $ this-> need_instance = 0; förälder :: __ konstruktion (); $ this-> displayName = $ this-> l ('Display Products Module'); $ this-> description = $ this-> l ('Visar en konfigurerbar mängd produkter för hemsidan.');
Prestashop-modulerna är objektorienterade; Därför måste du skapa en klass för din modul. Namnet på din klass ska vara den kamelformade versionen av mappens namn.
Överst i filen kan du se en om
påstående. Detta säkerställer att filen inte laddas direkt via webbläsaren. Därefter måste din klass antingen subklassera modulklassen eller underklassen en decedent i modulklassen.
Inuti konstruktorn ställer vi in modulens egenskaper. Prestashop använder denna information för att visas i back-end:
namn
är ett unikt "kodnamn", och det är inte det faktiska namnet som visas i back-end.flik
berättar för Prestashop modulens kategori. Du kan hitta en komplett lista över kategorier genom att öppna Controllers \ Admin \ AdminModuleController.php
fil. författare
, namn
och version
är självförklarande.needs_instance
berättar för Prestashop att skapa en instans av din variabel när du kommer till modulsidan. Det behövs vanligtvis inte, men om din modul måste visa ett meddelande eller logga in något när modulsidan är aktiv ska du ändra det här till en 1
.De två sista raderna ställer in det aktuella visningsnamnet och beskrivningen för din modul, och de använder samma lokaliseringsmetod för att låta dem översättas till olika språk. Dessa två rader måste gå efter föräldrars initialisering enligt Prestashops föredragna ordning som används av deras officiella moduler.
Nästa steg är att åsidosätta installationsmetoden. Här kan vi ange vilka krokar vi behöver, liksom standardalternativen för vår modul. Om något av inställningarna misslyckas misslyckas installationen.
Den här modulen är avsedd för hemsidan, så jag kopplar den till hemkroken. Vi vill också lägga till en CSS-fil i rubriken, vilket innebär att vi måste lägga till rubrikkroken också. Om du går till back-end under Moduler> Positioner sida, kan du hitta krokarnas tekniska namn (vilket är vad vi kommer att ange här).
Strax efter __konstruera()
funktion, lägg till följande:
public function install () if (förälder :: install () == false || $ this-> registerHook ('displayHome') == false || $ this-> registerHook ('displayHeader') == false || Konfiguration :: updateValue ('DP_Number_of_Products', 6) == false) returnera false; återvänd sant;
Detta lägger till de två krokarna och sätter standardnumret på produkter till sex. Du bör namnge egenskapen något unik så att andra moduler inte stör dina värden. Ett enkelt tillvägagångssätt lägger till din moduls namn eller initialer till början av namnet.
Du kan nu installera modulen på modulsidan och det ska installeras om allt är korrekt inställt. Gå till positionssidan, och den kommer att visas som registrerad under de två krokarna.
Genomförande av krokar är ganska enkelt; skapa en offentlig funktion med ordet "krok" följt av namnet på kroken. Låt oss börja med huvudkroken. Vi vill bara att den ska lägga till en CSS-fil till vårt tema. Här är den fullständiga funktionen:
offentlig funktion hookdisplayHeader ($ params) $ this-> context-> controller-> addCSS (($ this -> _ path). 'blockdisplayproducts.css', 'all');
Skapa den CSS-filen i din teman katalog, och din mall ska ladda den i rubriken.
Nästa krok är lite mer komplicerad. Det bör hämta ett visst antal produkter från databasen och ladda dem till en mallfil. Funktionen att hämta produkterna returnerar inte produktens bilder eller länkar, så vi måste ringa några olika funktioner och "bygga" en rad produkter. Här är den fullständiga funktionen:
offentlig funktion hookdisplayHome ($ params) $ languageId = (int) ($ params ['cookie'] -> id_lang); $ numberOfProducts = (int) (Konfiguration :: get ("DP_Number_of_Products")); $ productsData = Produkt :: getProducts ($ languageId, 0, $ numberOfProducts, "id_product", "ASC"); om (! $ productsData) returnera "error"; $ products = array (); $ link = new Link (null, "http: //"); foreach ($ productsData as $ product) $ tmp = Produkt :: getCover ($ product ['id_product']); array_push ($ produkter, array ('name' => $ produkt ['name'], 'author' => $ produkt ['tillverkare_namn'], 'desc' => $ produkt ['description_short'], 'price' = > $ produkt ['pris'], 'länk' => $ länk-> getProductLink (ny produkt ($ produkt ['id_product'])), 'image' => $ länk-> getImageLink ($ produkt ['link_rewrite' ], $ tmp ['id_image'])))); $ this-> smarty-> assign (array ('products' => $ produkter)); returnera $ this-> displayen (__ FILE__, 'blockdisplayproducts.tpl');
Det börjar med att få antalet produkter att visa och användarens språknamn. Vi ringer sedan för att få det tilldelade antalet produkter från den första registrerade produkten. Därefter ser vi till att det inte fanns några problem att få produkterna att spända om det fanns. Nästa block är den del jag nämnde tidigare, som bygger upp en matris med alla egenskaper vi behöver när du visar objektet. Detta inkluderar bilden och länken som inte returnerades med resten av produktdata. Det sista avsnittet lägger till produkterna till Smarty och laddar mallfilen du väljer. Jag heter mallfilen och CSS-filerna med samma namn som modulen, men det här är inte ett krav. du kan namnge det du vill ha.
Om du öppnar din webbplats just nu kommer du bara att se ett meddelande och notera "Ingen mall hittades för modulen blockdisplayproducts."Så låt oss skapa mallfilen i vår moduls katalog, namngiven den som du bara angav i krokfunktionen. Den här delen beror verkligen på din specifika temanlayout, men här är min mallfil:
om $ produkter! == falseforeach from = $ products item = produktnamn = productLoopl s = "VÅRA BOOKS" mod = "blockdisplayproducts"
/ foreach / if$ Product.author | övre | strip_tags | flykt: html: 'UTF-8'$ Product.name | strip_tags | flykt: html: 'UTF-8'$ Product.desc$ $ Product.price | string_format "% 2F"l s = "Visa" mod = "blockdisplayproducts"
Eftersom Prestashop använder Smarty-mallar har du ett antal hjälparfunktioner som du kan använda när du visar dina data. Vi börjar med en om
funktion för att försäkra sig om att produkterna är okej. Om det är går vi in i en för
loop, generera den angivna HTML för varje. Vi använder Smartys inbyggda hjälparfunktioner för att ta bort HTML-taggar och dölja författarens namn till versaler, och vi använder en annan metod för att formatera priset till önskat antal decimaler. För att se en fullständig lista över modifierare, se här.
Observera också att när du översätter strängar här måste du ange din moduls namn. Detta beror på att översättningen inte är knuten till ett tema, utan till själva modulen. Å andra sidan, l
funktionen är mallspecifik så, för att den ska kunna hitta din översättningsfil krävs det modulens namn.
Du kan nu visa din webbplats i webbläsaren; Om du har lagt till några produkter, borde de visas på hemsidan nu.
Nu är vår modul fullt fungerande, men det finns inget sätt att justera antalet återvände produkter. För att göra detta måste vi lägga till en funktion som heter getContents
. Om din modul har denna funktion, lägger Prestashop automatiskt till en konfigurationsknapp på sidan "moduler". Allt som returneras av den här funktionen kommer att visas på konfigurationssidan. För att börja, lägg till funktionen i modulens klass och fyll i den med följande:
offentlig funktion getContent () $ html = ''; $ html. = ''; returnera $ html;'. $ this-> displayName. ' Inställningar
'; $ html. = ' '; $ html. = '
Den här funktionen bygger helt enkelt upp HTML-koden som behövs för att visa en blankett med en ruta och spara knapp. Återigen använder jag $ This-> l ()
metod så att du kan översätta modulen till andra språk i framtiden, om du behöver göra det. Jag har använt ett nummerfält i HTML-formuläret, men var försiktig om du gör en kommersiell modul. Det stöds fortfarande inte av alla webbläsare. Med det sagt, om det är för din egen personliga användning, så känner du dig fri!
Den enda andra saken som kan tyckas vara kryptisk är den Verktyg :: safeOutput ()
funktion som vi ringer till webbadressen. Jag är ärligt inte 100% säker på hur viktigt det här samtalet är, men vad det gör är att det stripar alla HTML-taggar och konverterar nödvändiga tecken till html-enheter.
Gå sedan till modulsidan och klicka på konfigurera-knappen på din modul. Du kommer att hälsas med det formulär som vi just gjort.
Du kan justera numret och trycka på spara, men vi har inte skrivit i sparningsfunktionen ännu, så det fortsätter att återställas till 6 (det värde som redan sparats).
Tillbaka till funktionen lägger du till följande kod till början av funktionen:
om (Verktyg :: isSubmit ('numProds')) Konfiguration :: updateValue ('DP_Number_of_Products', (int) (Verktyg :: getValue ('numProds')));
Detta kontrollerar om värdet skickades in, dvs om värdet numProds
existerar som en $ _GET
eller $ _POST
variabel. Vi uppdaterar sedan egenskapen där vi lagrade värdet. Metoden Verktyg :: getValue
accepterar namnet på ett formulärfält och eventuellt en andra sträng av vad som ska returneras om formulärfältet inte hittades; Den returnerar sedan en formaterad sträng med det värde som skickades in. Det är viktigt att sätta detta innan du skapar HTML-formuläret. Annars kommer formuläret att innehålla de gamla värdena som tillhör de uppdaterade.
Med den sista koden har vi slutfört modulen. Den enda andra sak du bör göra är att lägga till en 16x16 GIF-ikon i modulmodulen.
Vi är nu redo att gå vidare till nästa alternativ för att integrera moduler med ditt tema.
Det andra alternativet är att använda en befintlig modul och omformulera den enligt dina likningar. Det här alternativet är betydligt enklare eftersom du bara behöver återskapa filen ".tpl" från modulen.
Mitt exempeltema saknar fortfarande en toppnavigeringsmeny, så låt oss anpassa den modulen. För att komma igång, aktivera / installera modulen på sidan "moduler", kallad "Översta horisontell meny". Nästa steg är att skapa en mapp i din teman katalog, kallad moduler
. Inom den skapar du en annan mapp med namnet på modulen - i vårt fall är det här blocktopmenu
. När du laddar en moduls tpl-filer kontrollerar Prestashop först om det finns en fil i mappen för överstyrning av aktiverade teman med samma namn. Om så är fallet laddar den temanversionen istället för lagret. Menymodulens tpl-fil heter blocktopmenu.tpl
, så du måste skapa en fil med samma namn i den nya mappen som vi just skapat.
Det enklaste sättet att ta reda på vilken typ av data en modul erbjuder är att antingen titta på deras tpl-fil och se vilka data de använder eller ladda upp Debug
verktyg. För att påskynda saker kan jag säga att det här pluginet bara erbjuder en enda variabel, namngiven MENY
, som innehåller en sträng med alla menyalternativ som kombineras inuti
li
tagg för varje objekt? Nåväl, Smarty till räddningen! Det här är inte en artikel på Smarty så jag kommer att hålla den här delen kort, men i grund och botten kommer vi att använda en kombination av strängbytesfunktionen och PHP: s exploderingsfunktion för att isolera de enskilda elementen. Efter det kan vi bygga HTML-koden med en för varje
slinga. Här är min färdiga mallfil för den här modulen: assign var = tmpMenu value = $ MENU | ersätt: '
- ': " assign var = items value ="
"| explodera: $ tmpMenu foreach $ items as $ item om! $ item @ last- $ Objekt
if ($ item @ index + 2)! = $ item @ total / if / if / foreach
Nu är det här mycket ny kod, så jag går igenom den linjen för rad. Det börjar med att öppna div
och ul
taggar; Dessa är endast av estetiska skäl. Därefter använder vi ett Smarty-kommando, kallat tilldela
. Det gör exakt vad det låter som: det tilldelar ett värde till en variabel. I den första tilldelningsdeklarationen tar vi bort öppningen li
taggar, och i det andra exploderar vi strängen genom stängningen li
märka. Resultatet är en array som innehåller en lista över menyobjektlänkar. Vi flytta sedan till en för varje
slinga, där vi visar varje föremål inuti
Om du har genomfört allt korrekt hittills kan du nu temat det som du vill och lägga till några sidor i menyn från modulens konfigurationssida. När du är färdig ska du kunna gå till din webbplats och se menyn fungerar som förväntat!
Detta har varit en mycket kort men grundlig granskning av de tekniker som krävs för att skapa PrestaShop-teman. Under handledningen har jag gått igenom de nödvändiga stegen för att skapa ett fullständigt flerspråkigt tema och två olika sätt att sätta tematiska moduler i din mall.
Förflyttning framåt, föreslår jag att du dyker lite djupare in i Smarty, eftersom det erbjuder ett antal dolda funktioner som verkligen kan hjälpa dig. När det gäller ett bra ställe att lära sig mer om Prestashop är det inte så mycket Jag rekommenderar att du läser källan. Vid tidpunkten för det här skrivandet är Prestashops dokumentation något spottig när det gäller ämnesomsättningen. deras källkod är dock väldokumenterad. Ett annat utmärkt alternativ är att undersöka andra moduler och teman för att få en djupare förståelse för vad Prestashop kan.
Jag hoppas att du har tyckt om att läsa den här artikeln. Om du har några frågor angående artikeln själv eller Prestashop i allmänhet, var god att lämna en kommentar nedan!
Behov av premium, färdiga PrestaShop-teman? Kolla in ThemeForest!
Användbara länkar: PrestaShop-plugins från CodeCanyon.