Quantcast
Channel: PrestaShop Developers' blog
Viewing all 941 articles
Browse latest View live

PrestaShop 1.7.2.0 RC1 is open for feedback!

$
0
0

PrestaShop 1.7.2.0 Release Candidate is now ready for you to test!

We are happy to announce that we are close to releasing 1.7.2.0. This minor version (in the SemVer meaning of the term) brings several new features and improvements to the 1.7 codebase, among which the return of Stock Management. We can’t wait to receive your feedback about it!

Test PrestaShop 1.7.2.0 RC1 now!

This RC is a great opportunity for you to start playing with it before we release a stable version!
Go download and install it as a test store, either on your machine or your web hosting, then have a go it – and give us your feedback!
Merchants, module developers, theme designers: We need YOU to test this new version of PrestaShop.

The feedback period is open from today to July 16th, 10 PM GMT. PLEASE TEST NOW!

What you need to know about PrestaShop 1.7.2.0 RC1

This version of course includes all the fixes that were part of the 2 patch versions released since v1.7.1.0 in April 2017.

It also brings the following:

  • New Stock Management interface, with essential management of your inventory.
  • New Translation page, with improved code and interface.
  • New hooks on both the Product page and the Classic theme.
  • Improved Classic theme readability on low quality screens.
  • A product can now have several features of each type.
  • Product page text areas now have a character counter.
  • New localization packs for Algeria, Morocco, South Africa and South Korea.
  • New Installer languages: Estonian, Finnish, Greek and Slovak.

…and many smaller things and needed fixes! Check the full changelog here.

Among the added hooks, you can find:

  • Front office, thanks to @prestamodule:
    • displayWrapperTop
    • displayWrapperBottom
    • displayContentWrapperTop
    • displayContentWrapperBottom
  • Back office product page, thanks @martinfojtik:
    • displayAdminProductsMainStepLeftColumnMiddle
    • displayAdminProductsMainStepLeftColumnBottom
    • displayAdminProductsMainStepRightColumnBottom
    • displayAdminProductsQuantitiesStepBottom
    • displayAdminProductsPriceStepBottom
    • displayAdminProductsOptionsStepTop
    • displayAdminProductsOptionsStepBottom
    • displayAdminProductsSeoStepBottom
    • displayAdminProductsShippingStepBottom

How to give feedback about this RC

Have you found a bug? A curious behavior? An unexpected reaction? Please let us know as soon as possible!

Create a ticket on the 1.7 Forge project, and give us as much details as possible!

Final note

So have at it! Download it, test it out with your theme/modules, and let us know what you like about it :)

Test PrestaShop 1.7.2.0 RC1 now!

We’ll closely monitor your feedback, and are eager to hear from you!

Happy testing!


PrestaShop Core Weekly - Week 26 of 2017

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase during the last two weeks, from Monday 26th of June to Sunday 2nd of July 2017.

Core Weekly banner

General messages

Sooooooo… Version 1.6.1.15 was indeed released last week. Phew! One down :)

And, while version 1.7.2.0 is not ready for a stable release yet, we want to have your opinion on it. So we’re about to release a Release Candidate for this new minor version. Get ready!

You can also start contributing to the 1.7.2.0 translation: the new strings are already available on Crowdin!

Code changes in the ‘1.7.2.x’ branches (for 1.7.2.0)

Core

  • #8053: Add theme configurator translation & update catalog, by @aleeks.
  • #8056: Fix type of errors variable in module configuration feature, by @quetzacoalt91.
  • #8058: Fix missing Template annotation created by refactoring, by @aleeks.
  • #8070: Module tab registration must check filenames, by @quetzacoalt91.

Back office

  • #8052: Fix strings for specific price rules, by @maximebiloe.
  • #8054: Fix api category tree, by @aleeks.
  • #8059: Fix missing use in ModuleDataUpdater, by @maximebiloe.
  • #8065: Feedback on translation page, by @aleeks.
  • #8068: Stock Management fixes, by @nihco2.

Installer

  • #8049: Reflect new Finnish tax rate in tax rule group names, by @alexeven.
  • #8055: Fix update sql for upgrade, by @aleeks.

Thank you to the contributors whose PRs haven’t been merged yet! And of course, a big thank you to all those who contribute with tickets and comments on the Forge!

If you want to contribute to PrestaShop with code, please read these pages first:

…and if you do not know how to fix an issue but wish to report it, please read this: How to use the Forge to contribute to PrestaShop. Thank you!

Happy contributin’ everyone!

Stock management in PrestaShop 1.7 - part 3

$
0
0

In the previous episodes, we’ve seen the motivations for designing a new stock management interface and how we’ve built it. By now, you must be pretty eager to see what it looks like for real… So let’s dive into the features of this new page of PrestaShop 1.7.2.0.

How do you get started?

From the back-office left menu, just click on Catalog / Stock. That’s it!

Stock

No need to activate an “advanced stock management” option from an obscure configuration page, nor to create a warehouse and then assign products to a warehouse and then assign every product to this stock management system… You see the point: contrary to PrestaShop 1.6, there’s no setup at all.

Features

Stock overview

Our goal here was pretty simple: allow users to have an overview of their catalog stock at a glance.

A table presents the products in the catalog and their corresponding stock:

Stock table

Each line represents a product (either standard, virtual or bundle) or one of its combinations. The only difference is that combination attributes are displayed just below the product’s name.

  • The table contains the following columns:
  • Image thumbnail, to help fast visual recognition.
  • Product’s name and when it’s a combination, its attributes’ values.
  • Product reference. In case a combination has its own reference then it’ll be used instead of the parent’s reference.
  • Supplier. In case several suppliers are assigned to a product, only the default supplier will be shown here.
  • Physical stock, which represents the quantity you actually have physically in your storage.
  • Reserved stock, which represents the quantity of products that are currently in an open customer order that has not been shipped yet.
  • Available stock, which is the quantity available for sale.
  • Edit quantity. This input allows modifying the quantity manually. More on that in the next part.

At any time, these 3 notions of stock are linked by the following equation:

Physical stock - Reserved stock = Available stock

By default, products are sorted by decreasing product_id, meaning that the most recently created product will be on top. If there are more than 100 products and combinations, then the table is paginated.

Quick edition of quantities

The goal here was to make it lightning-fast to edit a quantity when you need to.

With Advanced Stock Management in PrestaShop 1.6, it took you up to 20 seconds to edit a single quantity… Now it’s just a matter of 3 seconds!

In version 1.6, with advanced stock management activated, you had to follow these steps:

Quantity edition in PS 1.6

Now with version 1.7.2.0, an input to modify the quantity is directly reachable from the stock table. It works like this:

Quantity edition in PS 1.7

What you’re typing in this input is a quantity delta, meaning it’s not the desired final stock value but the quantity you’re adding or removing. You can either type in the quantity to add or to remove (with a minus sign), or use the up and down arrows to adjust the quantity.

While editing the quantity, you’ll see an overview of the resulting final stock:

Stock overview

This feature is here to help you see at the same time the starting point, the end point and the difference between those before validating. If you used to manually edit the quantity of a product directly in the product page by deleting the previous quantity and then entering the new one, it’ll save you a mental arithmetic operation and prevent you from forgetting the starting point when you’ve deleted it and a colleague interrupts you…

If you want to edit multiple quantities at the same time, you can also edit the quantities of several products and then validate it all with the “apply new quantity” button.

Multiple quantity update

Stock movements

Movement table

The table of stock movements provides you with a log of all the stock changes. Because it’s an history of previous stock movements, this table only has an informative role and therefore cannot be edited.

The structure looks similar to the stock table but here each line corresponds to a change in physical quantity for a product or combination. It contains the following columns:

  • Image thumbnail, to help fast visual recognition.
  • Product’s name and when it’s a combination, its attributes’ values.
  • Product reference. In case a combination has its own reference then it’ll be used instead of the parent’s reference.
  • Movement type. It represents the reason why a product’s physical quantity has changed.
  • Quantity added or removed. This delta is formatted with a + or - label to facilitate visual recognition.
  • Date and time, which is the exact server time stamp when the change occurred.
  • Employee, which is the name of the person responsible for the change.

With version 1.7.2.0, we listed a minimum number of movement types in accordance with events that can trigger a movement:

  • Manual edition by an employee, when for instance you modify a product’s quantity inside the stock table.
  • Customer order, when an order switches from a status equivalent to ‘not shipped’ to another status equivalent to ‘shipped’ (and vice-versa). For instance, when you ship an order that was under preparation, this will create a stock movement, as the physical quantity of items shipped literally leaves your warehouse.
  • Returned products, when you refill a product’s stock after receiving and accepting the merchandise return. In the last two cases, the movement type in the table becomes an hyperlink to the corresponding customer order, so you have more context about this type of movement and don’t have to cross-check time stamps between the stock movements and orders tables.

By default, stock movements are sorted by descending date, so that the most recent stock movements are on the top.

Search and filters

At the top of both tabs, you’ll find two features to quickly look for any product. The search bar is designed for use-cases where you know which product you’re looking for because you either have in mind its reference, name or supplier. While the advanced filters allow you to browse more options to fine-tune your search.

The search bar works the same in both tabs and looks for:

  • product’s name
  • product’s reference
  • supplier
  • [beta] attributes’ values. This allows you to look for a specific attribute value like color. When typing ‘green’, you’ll see all products which share this color attribute value. This is still in beta though, and might not work with too short attribute values like with sizes: ‘S’, ‘M’, ‘L’.

Live search

Each tab has different advanced filters, in order to adapt to the search context.

In the ‘Stock’ tab, advanced filters contain:

  • a supplier filter, which allows you to quickly browse available suppliers and choose one or several.
  • a category filter with an expandable tree.

Advanced stock filters

In the ‘Movements’ tab, advanced filters contain:

  • a movement type filter, which allows you for instance to look for stock movements related to customer orders.
  • an employee filter.
  • a date range filter, if you’re looking for stock movements which happened during a specific period.
  • and a category filter, like in the ‘Stock’ tab.

Advanced movement filters

Multi-store

This new stock management system is compatible with multi-store. For obvious reasons, if you have multiple shops inside a group where stocks are not shared, you cannot manage your stock in “all shops” or “group” context. If you try to do so, you might see the following error message:

Multiestore warning

Instead you have to select a shop in which you can work to edit its stock.

If you’re using a group of shops that share the same quantities, you’ll also have to select a unique shop context instead of a group but any change you make in a shop will also affect the other shops.

Multistore context

Technical implementation

This page was developed using a combination of a custom Symfony-based API with VueJS. An upcoming article will tell you all about it :)

What’s next

Maybe you’re enthusiastic about what you see and want to see more like this? Or you have ideas for improvements? Then if you haven’t already, complete this subscription form and be part of the community members who will help us build the next versions! We have plenty of ideas worth testing ;)

[FR] À propos de l’article 88 de la loi 2015-1785

$
0
0

Une fois n’est pas coutume, un article en français pour vous parler du projet de conformité de PrestaShop aux conditions légales prévues en France pour les logiciels de gestion et de caisse à compter du 1er janvier 2018.

Comme indiqué récemment dans un article de notre blog principal, nous avons bien noté que la conformité de PrestaShop à cette nouvelle était devenue un sujet d’interrogation pour l’écosystème de PrestaShop - d’autant que cette loi doit entrer en vigueur dans les mois qui viennent.

Cet article 88 de la loi de finances pour 2016 visant la lutte contre la fraude à la TVA (que nous appellerons “Article 88”) oblige les marchands français à utiliser, à partir de janvier 2018, un logiciel de gestion ou de caisse satisfaisant à des conditions d’inaltérabilité, de sécurisation, de conservation et d’archivage des données en vue du contrôle de l’administration fiscale.

En tant que société, PrestaShop est très attentif à cette loi, et prévoit déjà des des mesures afin que les marchands PrestaShop puissent continuer d’utiliser notre logiciel e-commerce sans crainte de représailles légales.

Pour commencer, nous participons régulièrement à des groupes de travail, constitués par des associations professionnelles dont le Syntec Numérique, afin de nous tenir informés des discussions avec l’Administration concernant le cadre et le délai de mise en application du texte.

Par ailleurs, nous prévoyons d’ores et déjà de mettre PrestaShop en conformité avant la fin de l’année, par le biais d’un module. Ce module, natif et gratuit, rendra inaltérables les données visées par la loi. C’est là la condition pour être certifié par les organismes habilités. Cette certification permettra aux e-commerçants de se voir délivrer une attestation justifiant de la conformité du logiciel.

Reste que seuls les logiciels de caisse seraient concernés. En dehors d’un usage de type Point of Sale, PrestaShop n’a pas d’obligation de mise en conformité. Pour autant, nous préférons à l’heure actuelle faire une lecture large de la loi plutôt qu’une lecture stricte, et mettrons tout en oeuvre pour rassurer notre écosystème sur la légalité de l’utilisation de PrestaShop à l’approche de janvier 2018.

Pour rester au courant sur nos avancées en la matière, abonnez-vous à notre blog !

Si vous avez des remarques ou des questions, n’hésitez pas à nous écrire : article88@prestashop.com

PrestaShop Core Weekly - Week 26 & 27 of 2017

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase during the last two weeks, from Monday 3rd of June to Sunday 16th of July 2017.

Core Weekly banner

General messages

The feedback phase for 1.7.2.0 RC1 closed this Sunday at midnight! The Core team has taken into account most of the issues tied to this version – and if not, 1.7.2.1 is not far away, thanks to our easy upgrade path :) We’re now entering the last stretch: internal QA tests and final small fixes.

Hence, expect 1.7.2.0 in the comings weeks!

Code changes in the ‘develop’ branches (for 1.7.3.0)

Core

  • #8113: Remove duplicate require_once. Thank you @prestamodule!

Code changes in the ‘1.7.2.x’ branches (for 1.7.2.0)

Core

  • #8083 Remove confusion about cart rule code check. Thank you @aaymeric!
  • #8101: Fix the tab permissions when only one profile, by @rgaillard.
  • #8103: Fix get attributes in order presenter, by @maximebiloe.
  • #8108 Fix update prefix sql, by @aleeks.
  • #8108: Fix update prefix sql, by @aleeks.
  • #8118: Extract theme with default translation in any language, by @aleeks.
  • #8124: Remove Finder from depency injection, by @quetzacoalt91.

Back office

  • #8074: Fix authorization panel, by @maximebiloe.
  • #8075 Allow extra fields from modules in product form, by @quetzacoalt91.
  • #8076: Fix upgrade button with update from disk, by @quetzacoalt91.
  • #8077 Revert Stock to singular, by @aleeks.
  • #8077: Revert Stock to singular, by @aleeks.
  • #8080 Translations confirmation modal, by @nihco2.
  • #8080: Translations confirmation modal, by @nihco2.
  • #8085: Fix JS event thrown on module uninstall, by @quetzacoalt91.
  • #8093: Fix stock management filters, by @nihco2.
  • #8094: Fix stock datepicker, by @nihco2.
  • #8095 Feedback on translation page, by @aleeks.
  • #8095: Feedback on translation page, by @aleeks.
  • #8096: Add ids to recommended-payment & carriers & others, by @aleeks.
  • #8098 Wording update for 1.7.2 catalog, by @alexeven.
  • #8098: Wording update for 1.7.2 catalog, by @alexeven.
  • #8106: Fix the upload quota for the product image, by @azouz-jribi.
  • #8107: Fix module enabling when ~ in theme.yml, by @maximebiloe.
  • #8109 Fix the weird syntax in customer information page, by @azouz-jribi.
  • #8109: Fix the weird syntax in customer information page, by @azouz-jribi.
  • #8119: Fix the display of placeholder in combinations tab, by @azouz-jribi.
  • #8120: Update catalog, by @aleeks.
  • #8129: Fix translations behavior, by @maximebiloe.
  • #8135: Last wording update for 1.7.2.x, by @alexeven.
  • #8136: Fixed bug where only 5 store contacts were imported (csv import), by @littlebigdev.

Front office

  • #8012: Show the forbiden message on product page. Thank you @prestamodule!
  • #8088: Auto width for the selector on product page, by @aleeks.
  • #8121: Limit the description’s image by the size of description’s frame, by @azouz-jribi.
  • #8132: Fix the height of the “Show password” button, by @maximebiloe.

Installer

  • #8087: Translate fixtures with CLI install, by @aleeks.

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @aaymeric and @prestamodule.

Thank you to the contributors whose PRs haven’t been merged yet! And of course, a big thank you to all those who contribute with tickets and comments on the Forge!

If you want to contribute to PrestaShop with code, please read these pages first:

…and if you do not know how to fix an issue but wish to report it, please read this: How to use the Forge to contribute to PrestaShop. Thank you!

Happy contributin’ everyone!

How we’re introducing Vue JS & a Symfony API

$
0
0

If you follow the Core Weekly or our recent GitHub activity, you may have seen that we introduced a new front-end technology in the PrestaShop back office: Vue.js. So, let’s talk a little about it to see what’s coming up.

Vue.JS késako?

Vue.js logo

As it describes itself, “Vue is a progressive framework for building user interfaces.” It is component-driven, meaning that you have one file per component (=html element). You can create your own components, as many as you want.

It can be compared to some other JavaScript frameworks such as Angular or React but we chose to use Vue.JS because we think it’s much simpler and it was fully meeting our needs.

Why are we using it?

The main idea was to improve the User Experience in an iterative way. Vue.js allows the interface to work as a Single Page Application, which removes the need to reload the page at each user action.

We also wanted to think in “Single File Components”, meaning that you have one HTML component per file (standard or custom). This way, you’ll be able to re-use them everywhere in your modules’ interface, and have the same UI easily.

Also, when we revamped the Product Creation page in PrestaShop 1.7.0.0, we were confronted with some issues when synchronizing fields. For example, when you modify the base price or the tax rate of your product, this modification needs to be propagated to all the price fields. Doing it with vanilla JavaScript and jQuery was not easy to make and it’s not really adapted. As everything needs to be in-sync, it may cause an infinite loop propagation of events.

So, we needed to better manage the state of data: we needed to use a finite state machine. Using a finite state machine will prevent the error described above and help us write more maintainable code. This way, we are able to easily synchronize fields.

There are several state management systems like Redux or Flux, but we chose to use Vue.js and its state management library, Vuex. You can read more about state management if you with to.

For now, we are taking advantage of this new way of building pages by introducing the brand new Stock feature, and reworking the Translation page. The Product Creation page may be reworked at a later time.

How have we implemented it?

Finite State Machine

Complementary to Vue.js, we are using Vuex for managing the state of data. It provides a centralized store for the PrestaShop components, and makes sure that the state can only be mutated in a predictable way.

It can be illustrated by the following schema (from the Vuex GitHub repository)

Finite state

Architecture

We decided to work a little bit differently from what we are used to do, but with something pretty standard today. We’ve written an API in Symfony, so that it could be used by the front part written in Vue.js.

We didn’t do anything really exotic, but something pretty common: just make a standard request and it returns a JSON response. For example, to get the suppliers list just call /api/suppliers or to edit a translation call /translation/edit with POST parameters

Contrary to the webservices, the API is private; meaning that you have to be authenticated in to the back office to be able to call it. In the future, we may implement something similar with a public token to authenticate the call and let the ERP interact with it.

Components

To build the templates for these new pages, we work with Vue.js components. It means that we extend standard HTML elements to encapsulate reusable code. For example, we’ve created an element named “PSButton” that you can use simply by using the “" tag.

Here is the Vue code for the <PSButton> component:

PSButton

And here is how we use it:

PSButton use

And how it looks like:

Reset button

You can pass parameters, such as the level you want (primary, secondary). That way, when we’ll update the layout of the component, it will update everywhere it is used and it will improve the User Experience and the User Interface consistency.

Current status

All these changes will be introduced for the next minor version to come: 1.7.2.0.
As you may know, this version will introduce a new Stock Management system, so we took advantage of this opportunity to use the Vue.js & Symfony API duo.

We wanted to start by making at least two pages use Vue.js, to really think in a component way as much as we could, and to mutualize as much code as possible. Since we noticed some performance issues on the Translations page, we revamped this page using Vue.js as well.

If you want to take a look at what we’ve done, you can browse the files on GitHub.

  • In the “pages” folder you’ll find the specific code for each page, arranged by page.
  • In the “widgets” folder, you will find all the shared components that we created so far.

The structure may still evolve while we do some refactoring, so we don’t encourage you the use of the components for a third-party module yet.

Vue.js structure

We are also working on writing the tests for this part. It’s not complete yet, but we aim to improve them for the finale release on PrestaShop 1.7.2.0.

Lessons learned

It’s not always easy to implement a new technology or a new way of doing.

In the beginning we only planned to make the new Stock page with Vue.js, but to make sure we were going on the good road, with centralized components shared between pages, we chose to also rework the Translations page. And that was the right decision to take, because it forced us to do some refactoring, and to mutualize a lot of components and files (there is still some work to do ;) ) between the pages.
So, remember that when you start a work like that, you really have to take the time to think about the architecture and how you want to build your app.

Regarding the Symfony API, it was easier to approach as there are a lot of resources on the Internet on the API-building best practices. We followed this article as much as we could. Making an API for two different pages helped to standardize the responses. Indeed, a good API must always return the same response structure whatever the source of the query.

What’s next?

In the next releases of PrestaShop, we would like to create more components, use Vue.js on more pages, write more tests… We also aim to introduce the finite state machine on the Product Creation page to improve the field synchronization and overcome some bugs.

In parallel, we are working on a new version of our UI Kit (more information coming soon) and we would like to provide the Vue.js components in it as the HTML snippets. It may take some time to reach this point, but that’s what we aim to do in the end :wink:

PrestaShop 1.7.2.0 is available!

$
0
0

Dear community. You’ve all been waiting for it. So have we. PrestaShop 1.7.2.0 is here.

We know you expected a lot from the next minor version, and we didn’t want to let you down. It closes almost twice as many pull requests as 1.7.1.0, 1.7.1.1 and 1.7.1.2 combined (126 vs. 203), and we took a month more of testing and improving it.

Download PrestaShop 1.7.2.0 now!

The previous version, released in early April 2017, brought many of the things that you wanted v1.7.0.0 to have: several native modules were available again (cross-selling, specials/discounts, best-sellers, etc.), the PayPal module made its come back, several improvements were made to the back office (including a unified mobile design)… All the while improving stabilization and performance.

So you might be wondering, what do we have in store for you this time? Keep reading…

What’s new?

Here what you can expect from this new minor version of PrestaShop:

  • New Stock Management interface, with essential management of your inventory.
  • Updated Translation page, with improved code and interface.
  • New hooks on both the Product page and the Classic theme.
  • Improved Classic theme readability on low quality screens.
  • Product page text areas now have a character counter.
  • New localization packs for Algeria, Morocco, South Africa and South Korea.
  • New Installer languages: Estonian, Finnish, Greek and Slovak.

…and many smaller things and needed fixes! Check the full changelog here.

Let’s explore that a bit, shall we?

New Stock Management interface

The 1.6 Advanced Stock Management feature was deemed too unstable to really be taken as-is in 1.7.0.0. We chose the remove from the first 1.7 versions in order to take the time to explore how to best build stock management into PrestaShop.

You can follow our quest to build a new stock management feature right here on the Build devblog: how we assessed the situation, how we iterated through prototypes, and finally, what stock management looks like in version 1.7.2.0.

New Stock Management page

It’s no longer “advanced” as it was in PrestaShop 1.6: the stock management is now much more reasonable, and much more usable for a majority of merchants (the ones who can’t afford an ERP yet).
It’s also a solid foundation for further improvement!

Of note, we started using the Vue.js framework in order to improve the UX in an iterative way.

Updated Translation page

The new Translation page in 1.7.0.0 kinda worked, but it was a performance hog, and not quite usable. So we decided to rework it using the same technology as the new Stock Management page: Vue.js.

New Translation page

Also, this version contains modifications that could impact your themes: if you are using the Classic strings and translations for your own theme, we’ve made some changes in 1.7.2.0 that you should report on your theme if you still want to benefit from the PrestaShop translations.

  • Translation domain “Shop.Theme” is now “Shop.Theme.Global”
  • Harmonization of domains for customer form: https://github.com/PrestaShop/PrestaShop/pull/8120/files?w=1#diff-a2cd912578d421dc72b8143048ad6b16
  • Correction of “Brands list” to “Brand list”: https://github.com/PrestaShop/PrestaShop/pull/8120/files?w=1#diff-78e1e3c6e9dc564ccd16b9f633b61f7f

New hooks

Thanks to community members, develops can now enjoy new FO and BO hooks!

  • Front office, thanks to @prestamodule:
    • displayWrapperTop
    • displayWrapperBottom
    • displayContentWrapperTop
    • displayContentWrapperBottom
  • Back office product page, thanks @martinfojtik:
    • displayAdminProductsMainStepLeftColumnMiddle
    • displayAdminProductsMainStepLeftColumnBottom
    • displayAdminProductsMainStepRightColumnBottom
    • displayAdminProductsQuantitiesStepBottom
    • displayAdminProductsPriceStepBottom
    • displayAdminProductsOptionsStepTop
    • displayAdminProductsOptionsStepBottom
    • displayAdminProductsSeoStepBottom
    • displayAdminProductsShippingStepBottom

Community involvement

Rarely has a version of PrestaShop so much contribution from the community! Of the 201 pull requests that were merged in this version, 52 came from contributors such as you! Yup, that’s 25% of the code changes in 1.7.2.0 :)

A huge “thank you!” to these 36 fine people, then: @0kph, @123monsite-regis, @aaymeric, @addisnetwork, @agnessymediane, @alendit, @alexdee2007, @dariusakafest, @djbuch, @gasparfm, @howardnoz, @ish6614, @jestemradek, @jorgevrgs, @kpodemski, @madef, @martinfojtik, @mortred974, @neoteknic, @nobodaddy, @pnicolass, @prestaedit, @prestamodule, @psandmore, @rubenmartins, @sebbareyre, @slamdunk, @soullivaneuh, @studiokiwik, @tiledcode, @tonyyb, @transkontrol, @true0r, @unlocomqx, @willowcreation, and @yannicka!

Thank you for helping improve the life of more than 260,000 online merchants with ideas, improvements and fixes!

Special thanks to @martinfojtik and @prestamodule, who are each responsible for 5 pull requests \o/

Now go ahead and tell us what you think!

Download PrestaShop 1.7.2.0 now!

PrestaShop Core Weekly - Week 29 of 2017

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase during the last week, from Monday 17th to Sunday 23rd of July 2017.

Core Weekly banner

General messages

We released PrestaShop 1.7.2.0 last week! It was a long ride – it took a month more than we hoped for – but we eventually go to it! Please enjoy, and give us your feedback on the new Stock Management feature, so that we can improve it in the next versions!

In the meantime, we’ve started gathering tickets and PRs for the 1.7.2.1 release, which should fix a dozen of small issues that were spotted in the final days of 1.7.2.0 development.

En in the meantime, as you can see below, we’ve started preparing for the monthly 1.6 patch release: 1.6.1.16 is coming soon!

Code changes in the ‘develop’ branch (for v1.7.3.0)

Core

  • #8048: Pass param content_only param to overrideLayoutTemplate call. Thank you @prestamodule!
  • #8117: Improve database connection character set declaration, by @eternoendless.

Back office

  • #8127: Do not throw exception on API request error for module categories, by @quetzacoalt91.
  • #8149: Change attribute groupe name with not public name for BO, by @aleeks.

Code changes in the ‘1.7.2.x’ branch (for v1.7.2.0)

Back office

  • #8161: Fix reset translation button, by @maximebiloe.

Front office

  • #8142: Fix the price update on quantity change on cart, by @maximebiloe.

Code changes in the ‘1.6.1.x’ branch (for v1.6.1.16)

Core

  • #7842: Fix import theme while module use non registered hook in DB. Thank you @prestamodule!

Back office

  • #7702: Update only checked fields when multishop option activated, by @fatmabouchekoua.
  • #8061: Add correctly the free_shipping cart_rule to an order from BO, by @hibatallahaouadni.
  • #8072: Add unicode prime symbol in PDF, by @hibatallahaouadni.
  • #8105: Fixed bug about the language link in the reply_msg mail. Thank you @pelechano!
  • #8126: Fix the export link of ASM movements, by @hibatallahaouadni.

Front office

  • #7249: Add impact on price to the product price, by @fatmabouchekoua.
  • #8050: Fix unit price of the product with combinations, by @hibatallahaouadni.
  • #8073: Fix tax problems in shopping cart, by @hibatallahaouadni.
  • #8091: Use $base_dir_ssl if SSL is enabled on CMS categories pages. Thank you @guillaumeg22!
  • #8092: CategoryController - Show page 404 with an error instead of redirecting to the 404. Thank you @guillaumeg22!
  • #8137: Fix the translation when installing Prestashop, by @mounirboukhris.

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @guillaumeg22, @pelechano, and @prestamodule!

Thank you to the contributors whose PRs haven’t been merged yet! And of course, a big thank you to all those who contribute with tickets and comments on the Forge!

If you want to contribute to PrestaShop with code, please read these pages first:

…and if you do not know how to fix an issue but wish to report it, please read this: How to use the Forge to contribute to PrestaShop. Thank you!

Happy contributin’ everyone!


6 months of PrestaShop

$
0
0

July is almost over and more than 6 months have come and gone since the beginning of the year. Time to gather some numbers and make sense of them. Infographic included!

High-level numbers

Between January 1st and June 31st of 2017, we’ve released 13 updates to PrestaShop:

  • 1 minor release for 1.7: 1.7.1.0.
  • 5 patch releases for 1.7: from 1.7.0.4, 1.5.0.5, 1.7.0.6, 1.7.1.1, and 1.7.1.2.
  • 5 patch releases for 1.6: from 1.6.1.11 to 1.6.1.15.
  • 2 test releases: 1.7.1.0 Beta, and 1.7.2.0 RC.

We did our best to follow our Release Schedule, published in early January: monthly patch releases, and minor releases every three months or so. Sure, the releases could get delayed here and there: that’s what happens when you plan a release late in the month - a delay pushes it to the next month :)
Meanwhile, v1.7.2.0 got delayed almost a month, as it comes with some nifty features and many fixes!

All these releases accounted for more than 600 merged pull-requests (603, to be exact). Because Open Source is nothing without discussions and trials, we can also talk about the almost 300 pull requests that were closed without merge since January 1st – many of which were fixed in a later PR which did get merged in time. That’s some 900 pull requests that were handled by the Core team in 6 months. Phew!

Community involvement

Now, what about the community?

I’ve been tracking community involvement, and here are a few numbers my spreadsheet gave me:

  • 229 pull-requests were created by community members since January 1st. That’s almost 1/3rd of all created PRs coming from outside of PrestaShop! Thank you!
  • Of those, 117 were merged. That’s more than 50%! (51.09, to be exact)
  • 66 of those 229 were created for the 1.6 codebase.
  • 22 community-created PRs were merged into the 1.6 codebase.

That’s nice, but what is the impact of the community on PrestaShop releases? Let’s seee:

  • The PrestaShop 1.7.1.x versions featured 18 community PRs and 108 from the Core team in total. That’s 15% of the merged PRs coming from the community. Not too shabby: can you feel that 1.7.1.0 was a lot about stabilization?
  • So far, v1.7.2.0 features 53 community PRs (from 37 individual contributors), and 135 from the Core team.
    • Close to 30% of merged PRs in 1.7.2.0 come from the community! That’s twice as many as for the whole 1.7.1.x branch!
    • Special thanks to @prestamodule and @martinfoktik, who are each responsible for 5 PRs merged in 1.7.2.0 so far: thanks guys!

As for version 1.6: the 5 patch versions released in 2017 so far were built from exactly 100 pull requests (20+21+19+21+19, count it up, not even done on purpose!), 66 of which came from the community. I guess that means that 66% of the changes brought to 1.6 are community-led. Yup, I’m good at math :)
It’s a great thing to see the community working alongside the Core team in hardening the 1.6 – which, as a reminded, will be maintained until October 2018. Thank you!

Finally, because these numbers were gathered for every 2-week sprint, I also can say that there is a median of 13 community members who submit at least 1 pull request per sprint.

As for the number of community members, roughly 100 people get their code merged in the codebase since January 2017 – I say roughly because “git shortlog” gives me 104, but there are certainly duplicates in there :)

The infographic

Because many of these numbers are nice, we figured an infographic would offer a nice overview, so here goes!

6 months of PrestaShop

Parting words

See you in January 2018 for the next edition :)

Do you speak PrestaShop? – June 2017 edition

$
0
0

Contributing to PrestaShop is not only about the code, it’s also about taking part to the PrestaShop translation project! Read this report to see how the translations of the software evolved in June.

Crowdin Monthly banner

Project news

1.7.1 made way for 1.7.2

As we’ve recently released the new version 1.7.2.0, the translations folder for the version 1.7.1 has been removed.
This version brings some new content; you can read more about it here.

Domain change in 1.7.2 (read this for your themes)

As a theme creator, the 1.7.2.0 version contains modifications that could impact the theme you’re selling.
If you are using the Classic strings (and attached translations) for your own theme, we’ve made some changes in 1.7.2 that you should report on your theme if you still want to benefit from the PrestaShop translations.

And as a reminder, you can read this article to know how theme translation works in 1.7 (and 1.7.2.0 brings many improvements on this side).

Propagation process

Each time we add a new version, there can be some propagation issues. Old translations seem to come back and some more recent work can be lost. C’est la vie !

When a string is identical between versions, here is how it works:

  • If translated in 1.6 folder, it will be shared with 1.7.2 folder.
  • If not translated in 1.6, it won’t be shared with 1.7.2 folder. But if translated in 1.7.1, the 1.7.1 translation will be propagated to 1.7.2.
  • If a string is updated in 1.7.1 but NOT in 1.6 folder, it is still the 1.6 version which will be shared with new folders (1.7.2 in the present case).

Because of this propagation process, sometimes you will see old translations coming back. If you are editing existing translations, please make sure they are also corrected in version 1.6 too.

To check whether a string is available in 1.6, you need to display all strings from the project, make a search for the string, then hover on the file name to see if it comes from version 1.6 or 1.7. Then you can edit the 1.6 version too:

Search among all strings

Identify 1.6 strings

4,000+ members!

We recently welcomed the 4,000th member to the PrestaShop translation project. As of today, we’re already more than 4,100 members: WOW.
Thank you for believing in open source and for helping fellow merchants in having a software translated in their language!

Welcome to our 4,000th member

Now let’s get back to our Crowdin project, and the full report of its activity in June:

A few stats

  • 40 members were active on the project this month.
  • A total of 26,340 words have been translated and 12,237 validated.
  • All this in 30 different languages.

Thank you for your involvement!

Top contributors

A lot of you are working every day on Crowdin to have PrestaShop available in many languages, and we can’t thank you enough for your dedication! Here are the most active translators and proofreaders for June 2017.

Top 10 translators in June:

 TranslatorLanguage# Words
1.Jesús Ruiz (jruiz)Spanish14,046
2.Yosef Esses Cohen (ppesses)Spanish, Mexico8,857
3.SeongHyeon Cho (jaymz9634)Korean3,024
4.Morten Borg (mortenborg)Danish2,800
5.Yuji Sugimoto (bm-sugi)Japanese2,007
6.Olta Çantası (soyalp.ms.ms)Turkish1,463
7.Anouar Talidi (Anouar_Talidi)Arabic1,100
8.Enzo Ferrara (ferribbotte)Italian934
9.jinjitHebrew932
10.Nikos Krontiris (nikoskrontirist)Greek929

Top 10 proofreaders in June:

 ProofreaderLanguage# Words
1.Jesús Ruiz (jruiz)Spanish13,989
2.Yuji Sugimoto (bm-sugi)Japanese3,643
3.Morten Borg (mortenborg)Danish2,800
4.SeongHyeon Cho (jaymz9634)Korean1,188
5.lolypop000Slovenian915
6.AmirRzdPersian704
7.Enzo Ferrara (ferribbotte)Italian646
8.Gabriel Tenita (ggedamed)Romanian618
9.Stanislav Yordanov (StanProg)Bulgarian269
10.Patrik Lindblom (extendus)Swedish230

Congrats, and welcome to our new top contributors!

Remember, you can see who’s been contributing to our translation project thanks to the Translators page.

Complete translations

Fully translated languages

At the end of July 2017, PrestaShop 1.6.1 was fully available (= 100% translated and validated) in 15 languages:

BulgarianEnglishFrenchFrench, Canada
French, CanadaGermanGreekItalian
NorwegianRussianSlovakSlovene
SpanishSwedishTurkish 

For its part, PrestaShop 1.7.2 is already fully available in 10 languages!

CroatianEnglishFrenchFrench, Canada
GermanGreekItalianNorwegian
RussianSlovakSloveneSpanish
SwedishTurkishUkrainian 

Languages with the best evolution

In comparison with May 2017, the following languages had the best progress thanks to the translation community:

  • Spanish, MX (+6% to reach 49% translated in 1.7)
  • Korean (+2% to reach 23% translated in 1.6)
  • Romanian (+1% to reach 100% translated in 1.6)

Best translation progress for June 2017

Thanks to all the contributors!

Of course, this is highlighting the languages that made some progress with new translations; but it doesn’t mean that the languages that aren’t mentioned here aren’t active. Indeed, some editing and rewriting could be going on, but the percentage of translation wouldn’t be modified (since it’s working on strings that are already translated). So let’s not forget about the work of these proofreaders! Thank you too!

Languages that need (more) proofreaders

A translated string will not be available in PrestaShop as long as it is not validated. For this reason, it’s important we should keep a good level of validated strings vs. translated strings, to make sure everyone benefits from the latest translations!

The list has quite evolved over the last few months, meaning that a lot of proofreading took place. It’s great!

At the end of June 2017, some languages would still benefit from some proofreading:

  • Arabic (64% translated vs 18% validated in 1.7).
  • Galician (65% vs 46% in 1.7).
  • Romanian (94% vs 75% in 1.7).

Languages that need proofreading

Again, these figures are mostly for 1.7, but 1.6 needs some proofreading too :)

If you wish to help to proofread what has been translated, please contact me on Crowdin with the language you’d like to proofread. We need your help!

If you haven’t joined us on Crowdin yet, it’s never too late!

If you want to gather your fellow translators to work towards a better harmonization, start a glossary, or anything else, do let us know: we’ll include a word about it in the next monthly report.

Do you have a question, a remark? Don’t hesitate to leave a comment. See you next month!

PrestaShop Core Weekly - Week 30 of 2017

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase during the last week, from Monday 24th to Sunday 30th of July 2017.

Core Weekly banner

General messages

We’re about to release v1.6.1.16. Coming up this week!

We’re working on v1.7.2.1, which should be released very soon. Next week?

We’re still planning for v1.7.3.0, tentatively slated for an October release.

That’s a lot of releases :)

Code changes in the ‘develop’ branch (for v1.7.3.0)

Core

  • #7997: Fix coding standards issues, by @eternoendless.
  • #8183: Clean some variables/code, by @aleeks.

Installer

  • #8193: Use proper folder for theme templates, by @quetzacoalt91.

Tests

  • #8184: Do not download latest stable version of Google Chrome, by @quetzacoalt91.

Code changes in the ‘1.7.2.x’ branch (for v1.7.2.1)

Core

  • #8165: Use MessageCatalog function to get all message, by @aleeks.
  • #8186: Improve stock sql performance, by @aleeks.

Back office

  • #8160: Fix the style of product reference in the stock management page, by @azouz-jribi.
  • #8166: Fix the misalignment of the search button in the stock page, by @azouz-jribi.
  • #8167: Fix the search tags in the stock management, by @azouz-jribi.
  • #8173: Fix the search error with white spaces in stock page, by @azouz-jribi.

Front office

  • #7716: Fix displaying product thumbnails. Thank you @molka!
  • #7855: Add link to products for Pack, by @fatmabouchekoua.
  • #8111: Fix unclosed tag. Thank you @prestamodule!
  • #8155: Fix the style of forgotten password page, by @azouz-jribi.
  • #8155: Fix the style of forgotten password page, by @azouz-jribi.
  • #8169: Fix typo in bootstrap class, by @maximebiloe.
  • #8170: Limit the description’s image by the size of description’s frame, by @azouz-jribi.

Tests

  • #8185: Do not download latest stable version of Google Chrome, by @quetzacoalt91.

Code changes in the ‘1.6.1.x’ branch (for v1.6.1.16)

Core

  • #7885: Subrequest error in SQL Manager. Thank you @flowster!
  • #7985: Use MySQL index in cart delete method. Thank you @scapy!
  • #8086: Undefined index base_price. Thank you @flowster!

Back office

  • #7954: Remove download limit (SQL manager CSV export). Thank you @axometeam!
  • #8162: Fix bulk delete for CMS Category. Thank you @matt75!

Front office

  • #7892: Fixed opc_id_address_invoice in OPC. Thank you @gfilippakis!
  • #8102: Fix multistore search indexation, by @hibatallahaouadni.
  • #8157: Fix the pagination of the list of products, by @techhdan.

Tests

  • #8190: Use precise build of travis, by @quetzacoalt91.

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @axometeam, @flowster, @gfilippakis, @matt75, @molka, and @scapy!

Thank you to the contributors whose PRs haven’t been merged yet! And of course, a big thank you to all those who contribute with tickets and comments on the Forge!

If you want to contribute to PrestaShop with code, please read these pages first:

…and if you do not know how to fix an issue but wish to report it, please read this: How to use the Forge to contribute to PrestaShop. Thank you!

Happy contributin’ everyone!

Release of PrestaShop 1.6.1.16

$
0
0

PrestaShop 1.6.1.16 is now available. This maintenance release has seen 20 pull requests merged since version 1.6.1.15.

Continuing on our promise to support 1.6 with patch releases until October 2018, we are happy to deliver this new version. Please do upgrade to this latest and greatest version of PrestaShop 1.6!

Download 1.6.1.16 now!

As the version number indicates (as per our SemVer-like versioning), this is the 16th patch release for PrestaShop 1.6.1.0.

As usual, if you are currently running promotions leading to high traffic on your website, we recommend that you wait for the promotion to end before attempting any upgrade and technical change to your store.

We hope you enjoy this new release!

The changes

For a full list of changes, see the list of pull requests merged into the 1.6.1.x branch in this milestone

Here are some of the most notable changes that this version brings:

  • Fix bulk delete for CMS Category
  • Fix the pagination of the list of products
  • Fix multistore search indexation
  • Fix tax problems in shopping cart
  • Fix unit price of the product with combinations
  • Remove download limit (SQL manager CSV export)
  • Add correctly the free_shipping cart_rule to an order from BO
  • Add impact on price to the product price
  • …and several other fixes.

The PrestaShop 1.6.1.16 changelog is available.

Since version 1.6.1.16 is a “patch” update to version 1.6.1.0, upgrading from that version will be as smooth as silk for everyone: features will work better, and modules & themes which worked fine on 1.6.1.0 will work just as well with 1.6.1.16.

This release had 12 contributors, both from PrestaShop and from the Community at large.

  • @axometeam
  • @fatmabouchekoua
  • @flowster
  • @gfilippakis
  • @guillaumeg22
  • @hibatallahaouadni
  • @matt75
  • @mounirboukhris
  • @pelechano
  • @prestamodule
  • @scapy
  • @techhdan

A huge “thank you!” to each of the 8 outside contributors, who gave their time and knowledge for the benefit of the whole PrestaShop community! You too can contribute to the next version!

Let’s go, upgrade your store(s)! Upgrading from 1.6.1.0-1.6.1 is completely safe; upgrading from a standard 1.6.0.x version should work just as well. Those upgrading from version 1.5, 1.4 or even 1.3 should take their time and pay attention to their modules, their theme and their custom modifications!

PrestaShop Design Principles

$
0
0

Our design principles are made to shape stronger products. They define the experience core values of PrestaShop. They provide a consistent vision of our products and the way they should be build. Follow them if you build an interface, a user flow, a user experience for PrestaShop.

Build for professionals

PrestaShop’s final users are merchants. Interfaces, flows and interactions should serve their professional needs. Go straight to the point. Deliver help and information. User experience must be as efficient as possible. Users should achieve their goals without hesitation or difficulty.

Design for humans

Prestashop users are humans. Don’t forget the emotional part of user experience. Prevent stress or frustration. Give feedbacks to any interaction. Use clear copy. Each problem should have a solution and a helpful alert message. Never forget the user’s emotions.

Stay consistent

PrestaShop has different platforms and products and serves a huge community. Consistency is crucial to maintain user experience quality and stay scalable. Please respect our branding, style guides and standards.

Be universal

PrestaShop is international. Every human being, no matter the culture, language, connexion or screen’s quality, should be able to use our products and understand our interfaces. Avoid tone, expressions or interactions that are specific to only one kind of people. Be universal. Interfaces should be adaptive to any language, behavior or standard.

An update on the 1.7 RTL project

$
0
0

Some time ago we announced the launch of a project to better adapt PrestaShop to right-to-left (RTL) languages. We already have a small community overviewing what is going on (thank you!). To make sure everybody shares the same level of information, here is where we stand so far.

Choosing a method: RTL script

We had to figure out which method to use to adapt PrestaShop to RTL languages. Here are the many methods that have been reviewed, and why we’ve chosen to go for a script.

1.6 method

In PrestaShop 1.6, the method that was chosen was to use bi-app to adapt the Sass files (preprocessed CSS files) for RTL. It relies on a third-party application with scripts that don’t meet all of our needs, and furthermore needs some customization.

Pros
  • We’ve been using this for PrestaShop 1.6
Cons
  • Requires some additional development
  • If we customize it, it will be hard to maintain and update
  • All SCSS and UI Kit files will need to have bidirectional support (but that will be the case anyway)
  • Requires either duplicated files or overrides

Manual method

Another method would be to manually create SCSS files for RTL. That implies heavy maintenance, as each time a SCSS file is changed, it must be duplicated on the RTL SCSS file too.

Pros
  • Full control over what is being done
Cons
  • Each time a modification is made to a CSS file, it must be made twice (on LRT and RTL files)

Script method

The last method is to use a PHP script to adapt the final CSS files to RTL. The related library will be included in the PrestaShop Core dependencies to be always available. We will use it everytime we install or enable a RTL language to generate the RTL CSS files.

This is the chosen method for PrestaShop 1.7.

Pros
  • One script to handle all the files
  • RTL files are generated only if needed (and not the LTR files)
  • Less maintenance
  • Contributor’s theme can benefit from it in order to be RTL-compatible
Cons
  • Script must answer to all cases
  • We must avoid generating duplicated code

For instance, we’ll have a theme.css file and a theme_rtl.css file. When theme_rtl.css is loaded, the theme.css will not be loaded. Right now as we suggested in past, PrestaShop will load any file which has _rtl.css instead of the original one.

Font choices

RTL languages use different scripts (set of written characters - for instance Hebrew isn’t written the same as Farsi), and each script is better read with a proper font made to match it. Thus we would need to adapt the font to the selected RTL language, both on back-office and the Classic theme.

The font suggestions right now are:

For the other languages, if no font is defined, we fall back to Noto sans, used today on the Classic theme.

If you want to suggest a font for a specific RTL language, or for Arabic where nothing is decided yet, please comment on our Trello board or leave a comment here! We’re open to suggestions :)

Icons

PrestaShop 1.7 uses Material Icons, where icons are identified by their content instead of a specific class ID. This makes it much harder to identify an icon in CSS when we need to know whether it should be reversed or not. Given this, we’ll create a CSS class which will gather all the icons that need to be kept in a LTR style for RTL languages.

Jalali calendar (for Iran)

Iran has its own calendar, the Jalali calendar. For users in Iran, we will thus add a new calendar type. The calendar choice will be determined by the country of the merchants (= if the shop country is set to Iran, the default calendar will be Jalali).

An option in the Localization page will be added to allow the merchant to select which calendar they want to display on their shop. At the same time, employees will be able to choose which calendar to display in the administration interface via the Employee page - in case they’d like it to be different from the default setting (= Jalali calendar in Iran, Gregorian calendar otherwise).

If you too need a specific calendar to be added to PrestaShop, now is a good time to talk about it!

A new class will be introduced (named “pdate”, for “Persian date”) to convert date between the two calendars and save them in the database. This conversion will be applied once for saving Jalalil dates to Gregorian and once for showing saved dates from Gregorian to Jalali.

Developments on Github

The RTL project is open and anyone can see how it goes on a dedicated RTL branch: https://github.com/PrestaShop/PrestaShop/tree/rtl. If you wish to contribute, you are most welcome. Please don’t hesitate to open a pull-request. Remember, we are following method 3: the PHP script method.

The proposed script should be available on GitHub today (or in the coming days), and you are all invited to comment and send commits to improve it, should you see anything.

We have a lot of contributors involved from Iran, some from Tunisia, and we’d like to hear from other countries too - for the Hebrew and Malay languages for instance :)

So please let us know what you think!

PrestaShop Core Weekly - Week 31 of 2017

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase during the last week, from Monday 31st of July to Sunday 6th of August 2017.

Core Weekly banner

General messages

As announced in last week’s Core Weekly Report, we release 1.6.1.16! It contains the usual number of merged pull requests, and as you know, we plan on continuing supporting PrestaShop 1.6.1.16 with monthly patch releases until October 2018.

Version 1.7.2.0 was rather well received, and we are planning a first patch release for this version in the coming days – either this week or the next, depending on the tests currently being done. Stay tuned!

Summer is also the time when things slow down a little, which allows for planning ahead. Two articles released last week are going this way:

That’s a nice start for August, don’t you think?

Code changes in the ‘develop’ branch (for v1.7.3.0)

Core

  • #8128: Sample config file for Nginx server, by @eternoendless.
  • #8181: Change visibility of properties in class CheckoutSession. Thank you @prestaworks!
  • #8188: Clean some variables/code, by @aleeks.
  • #8198: The t must be capital in namespace. Thank you @chellem!
  • #8214: Fixed foreach warning on empty hook return. Thank you @mdweb-lille!
  • #8217: Make SymfonyContainer available from 1 location, by @aleeks.

Back office

  • #8203: Fix width of column too small of pdf invoice, by @aleeks.
  • #8204: Fix str2url js with new chars, by @aleeks.

Front office

  • #8060: Make the store email clickable in the footer, by @fatmabouchekoua.
  • #8207: Fixed bug in the link tracking number for the detail order, by @aleeks.
  • #8214: Fixed foreach warning on empty hook return. Thank you @mdweb-lille!

Installer

  • #8189: Change order for Countries/Zones/States tabs, by @aleeks.
  • #8192: Write permission must be check for app/Resources/translations, by @rgaillard.
  • #8219: Updating the PrestaShop images for installer last step, by @alexeven.

Test

  • #8154: Run functional tests in Travis, by @quetzacoalt91.

Code changes in the ‘1.7.2.x’ branch (for v1.7.2.1)

Core

  • #8201: Speed up search queries (17), by @jocel1.
  • #8215: Add translations in database when importing theme, by @aleeks.

Back office

  • #8046: Fix legacy submenu laptop, by @nihco2.
  • #8140: Update modules page design, by @nihco2.
  • #8141: Fix the module “translate” button with the new link of translation page, by @azouz-jribi.

Front office

  • #8145: Fix custom content link opening in the same page, by @azouz-jribi.
  • #8152: Make the slider appears on Mobile view, by @azouz-jribi.
  • #8191: Fix flags on products front-office, by @aleeks.
  • #8205: Fix custom content link opening in the same page, by @azouz-jribi.
  • #8206: Fix flags on products front-office, by @aleeks.

Installer

  • #8021: Use correct module name column for authorization role. Thank you @soullivaneuh!

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @chellem, @mdweb-lille, @prestaworks, and @soullivaneuh!

Thank you to the contributors whose PRs haven’t been merged yet! And of course, a big thank you to all those who contribute with tickets and comments on the Forge!

If you want to contribute to PrestaShop with code, please read these pages first:

…and if you do not know how to fix an issue but wish to report it, please read this: How to use the Forge to contribute to PrestaShop. Thank you!

Happy contributin’ everyone!


Contribute to this devblog!

$
0
0

Ever felt there were topics that the Build devblog should talk about? Best practices to follow? Here’s your chance!

We’ve always wanted Build to be a community blog: from day one, the page “How to write on this blog” has been available for all to see, and some have taken that opportunity to share their knowledge – most notably through how-tos.

Wanna be part of the credit section? Read on!

What we are looking for

We are looking for original content from the community, and useful to the community.

Build will never be a blog where you can see titles such as “5 themes for the Christmas shopping season”, “Black Friday: 7+1 modules to drive traffic to your shop”, or “12 Ways to improve your SEO (the 11th one is craaaaazy!)”.

Nope. We’d like this blog to feature cool articles that help the community grow as a whole. We are not looking to promote one product (except PrestaShop, of course :) ) nor one software maker.

What we’d like to see the community submit:

  • An expertise on a little-known aspect of PrestaShop.
  • An experiment that went well (or not!), and why.
  • Best practices for module-coding or theme-building.
  • Inspiration for PrestaShop freelancers or agencies.
  • etc.

How to do it?

First and foremost, contact us about your article idea(s)! Write to build@prestashop.com and tell us which story you would like to tell to the Build readership. Once we agree on it, it’s on you to deliver!

Second, Build is managed using GitHub Pages, which uses the Jekyll static site tool – and hence relies on Markdown as its base format. No CMS here: it all happens through text files on the blog’s Git repository!

All of this would ideally be known to you as a writer, because supposedly you are a developer, right? Are you not? Then you can still write, ‘cos we’re not bad guys: we’ll help you shape your article into proper publication.

Read you soon!

We know there are a lot of authors just waiting to be discovered within the community. This is our way to shine a light on the professionals who live and breathe PrestaShop daily, and one way for you to give back to this Open Source project!

Thank you for your contribution!

Release of PrestaShop 1.7.2.1

$
0
0

PrestaShop 1.7.2.1 is now available. This maintenance release fixes 28 issues reported on version 1.7.2.

Version 1.7.2.0, released in July, brought a lot of goodies, none the less being the new Stock Management feature. That new minor version was well received, and this patch version simply fixes a few kinks that were discovered, bringing further goodness and stability to the 1.7.2 branch.

Some of the most notable fixes are:

  • Add a scrollbar for editor
  • Fix for CMS tree on sitemap
  • Refresh product line on quantity change in cart & Show discount to cart summary
  • Use composer cacert file by default
  • Upgrade theme modules & disabling them in the same time that the theme

Download PrestaShop 1.7.2.1 now!

Here is the complete list of changes:

  • Back Office:
    • Improvement:
      • #8140: Update modules page design
    • Bug fix:
      • #8046: Fix legacy submenu laptop
      • #8141: Fix the module “translate” button with the new link of translation page
      • #8173: Fix the search error with white spaces in stock page
      • #8160: Fix the style of product reference in the stock management page
      • #8166: Fix the misalignment of the search button in the stock page
      • #8167: Fix the search tags in the stock management
  • Front Office:
    • Improvement:
      • #8205: Fix custom content link opening in the same page
      • #8145: Fix custom content link opening in the same page
      • #7855: Add link to products for Pack
    • Bug fix:
      • #8206: Fix flags on products front-office
      • #8152: Make the slider appears on Mobile view
      • #8191: Fix flags on products front-office
      • #8155: Fix the style of forgotten password page
      • #8169: Fix typo in bootstrap class
      • #7716: Fix displaying product thumbnails
      • #8111: Fix unclosed tag
      • #8170: Limit the description’s image by the size of description’s frame
  • Core:
    • Improvement:
      • #8201: Speed up search queries (17)
    • Bug fix:
      • #8215: Add translations in database when importing theme
      • #8165: Use MessageCatalog function to get all message
      • #8186: Improve stock sql performance
  • Installer:
    • Bug fix:
      • #8021: Use correct module name column for authorization role

The PrestaShop 1.7.2.1 changelog is available.

Contributors to this patch version, from both the Core team and the community at large: @aleeks, @azouz-jribi, @fatmabouchekoua, @jocel1, @maximebiloe, @molka, @nihco2, @prestamodule, and @soullivaneuh! Thank you!

Since version 1.7.2.1 is a “patch” update to version 1.7.2.0, upgrading from any 1.7.2 version will be easy: features will work better, and modules & themes which worked fine on 1.7.2.0 will work just as well with 1.7.2.1.
Upgrades from a standard 1.7.x version should work just as well, and those upgrading from older versions (1.6, 1.5, 1.4 or even older) should take their time and pay attention to their modules, their theme and their custom modifications!

Contributor interview: Marcin Szperlik

$
0
0

An Open Source community is more than just PR made by faceless strangers. In order to better understand the people who contribute time and skills to the PrestaShop project, we’re launching a series of interviews with contributors of all ranges. This week, meet Marcin Szperlik!

Could you tell us a bit about yourself, and how you got involved in Prestashop?

Hello! I’m a full-stack developer and designer from Poland. For the past few years, I have been working with PrestaShop as my full-time daily job. Prior to that, I worked with a few e-commerce systems, but since 2010 PrestaShop is my favorite. In 2012, I created the Warehouse theme, which became very popular.

You are the creator of Warehouse, a popular PrestaShop theme, and you are creating a theme for v1.7.
What is your feeling on the theming changes brought by 1.7?

The new frontend architecture in PrestaShop 1.7 is great. It allows to create more advanced design faster and with better code. It uses the latest technologies and it is very fun to work with. I really love it!

I also like the fact that the JavaScript Core of the front office is excluded from the template file: thanks to that, there will be less compatibility problems, and updating will be easier.

What do you think of the Starter Theme?

I developed the Warehouse theme using the Classic theme. However, in some places, I replaced the Classic files with files from the Starter Theme because it was easier for me to develop the entire page from scratch. I think the Starter theme is great for creating custom projects.

What advice would you give to new theme creators?

I think high customizability is a huge factor in e-commerce themes. Sometimes I see a nice looking theme which does not achieve success simply because they did not allow the merchant to adapt it easily and to make it different from the main demo.

You have started contributing more to PrestaShop, through pull requests and Forge tickets.
What motivates you to do so?

During development of the Warehouse theme, I was able to spot some issues, and since it is important to me also to make a stable template, I decided to fix/report them.

Working with the Core also helps to improve the system, so I also benefit from that. Developing a new theme framework for PS 1.7 was a pretty busy period for me, but soon I have plans to contribute more.

How do you think we could help people contribute more?

Maybe you should promote http://forge.prestashop.com so non-developers/users start creating tickets instead of posting on forum. It would be great to create integration with the Prestashop back office, so that it is possible to create a ticket directly from one’s shop.

Thank you Marcin, we hope to see you soon in our Core Weekly reports! :)

Do you speak PrestaShop? – July 2017 edition

$
0
0

Contributing to PrestaShop is not only about the code, it’s also about taking part to the PrestaShop translation project! Read this report to see how the translations of the software evolved in July.

Crowdin Monthly banner

Project news

Adding Esperanto

We’ve received the request to add - for the second time! - Esperanto to PrestaShop. It’s been added to the Crowdin project this week, so please join us if you want our e-commerce software to be available in Esperanto :)

With the arrival of PrestaShop 1.7.2 in July, we’ve had a lot of activity on the translation project on Crowdin. We can’t thank you enough! Here is the full report for July:

A few stats

  • 63 members were active on the project this month.
  • A total of 169,455 words have been translated and 140,178 validated.
  • All this in 24 different languages.

Thank you for your involvement!

Top contributors

A lot of you are working every day on Crowdin to have PrestaShop available in many languages, and we can’t thank you enough for your dedication! Here are the most active translators and proofreaders for July 2017.

Top 10 translators in July:

 TranslatorLanguage# Words
1.Gabriel Tenita (ggedamed)Romanian91,939
2.Jesús Ruiz (jruiz)Spanish30,079
3.ondrej_pisaCzech3,320
4.SkaZun (raidhunters)Ukrainian3,218
5.SeongHyeon Cho (jaymz9634)Korean3,129
6.Luis Sanchez (sanchezluys)Spanish, Venezuela2,925
7.luizcarlosmnjrPortuguese, Brazil2,186
8.Filip Filipović (filipfilipovic)Croatian1,307
9.webdvl (megashopba)Slovak1,273
10.Alper Demir (alper-demir)Turkish1,119

Top 10 proofreaders in July:

 ProofreaderLanguage# Words
1.Gabriel Tenita (ggedamed)Romanian91,550
2.Jesús Ruiz (jruiz)Spanish30,053
3.SkaZun (raidhunters)Ukrainian4,297
4.Alper Demir (alper-demir)Turkish2,491
5.Filip Filipović (filipfilipovic)Croatian1,307
6.webdvl (megashopba)Slovak1,273
7.Cha (cafetango)Chinese, Traditional1,174
8.DaoKakaoRussian1,150
9.KoralPolish1,055
10.A Petapouca (petapouca)Galician1,033

Congrats, and welcome to our new top contributors!

Remember, you can see who’s been contributing to our translation project thanks to the Translators page.

Complete translations

Fully translated languages

At the end of July 2017, PrestaShop 1.6.1 was fully available (= 100% translated and validated) in 17 languages:

BulgarianCroatianDanishEnglish
FrenchFrench, CanadaGermanGreek
ItalianNorwegianPolishRussian
SlovakSloveneSpanishSwedish
Turkish   

For its part, PrestaShop 1.7.2 was fully available in 12 languages!

CroatianDanishEnglish
FrenchItalianRomanian
RussianSlovakSlovene
SpanishTurkishUkrainian

Languages with the best evolution

In comparison with June 2017, the following languages had the best progress thanks to the translation community:

  • Dutch (+9% to reach 100% translated in 1.7)
  • Danish (+8% to reach 100% translated in 1.7)
  • Indonesian (+8% to reach 100% translated in 1.7)
  • Czech (+7% to reach 100% translated in 1.7)
  • Portuguese, Brazil (+6% to reach 100% translated in 1.7)

Best translation progress for July 2017

Thanks to all the contributors!

Of course, this is highlighting the languages that made some progress with new translations; but it doesn’t mean that the languages that aren’t mentioned here aren’t active. Indeed, some editing and rewriting could be going on, but the percentage of translation wouldn’t be modified (since it’s working on strings that are already translated). So let’s not forget about the work of these proofreaders! Thank you too!

Languages that need (more) proofreaders

A translated string will not be available in PrestaShop as long as it is not validated. For this reason, it’s important we should keep a good level of validated strings vs. translated strings, to make sure everyone benefits from the latest translations!

The list has quite evolved over the last few months, meaning that a lot of proofreading took place. It’s great!

At the end of July 2017, some languages would still benefit from some proofreading:

  • Arabic (53% translated vs 19% validated in 1.7).
  • Portuguese, Brazil (65% vs 46% in 1.7).
  • Galician (66% vs 47% in 1.7).
  • Catalan (93% vs 76% in 1.7).
  • Spanish, Mexico (49% vs 32% in 1.7).

Languages that need proofreading

Again, these figures are mostly for 1.7, but 1.6 needs some proofreading too :)

If you wish to help to proofread what has been translated, please contact me on Crowdin with the language you’d like to proofread. We need your help!

If you haven’t joined us on Crowdin yet, it’s never too late!

If you want to gather your fellow translators to work towards a better harmonization, start a glossary, or anything else, do let us know: we’ll include a word about it in the next monthly report.

Do you have a question, a remark? Don’t hesitate to leave a comment. See you next month!

PrestaShop Core Weekly - Weeks 32-33-34 of 2017

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase during the last three weeks, from Monday 7th to Sunday 27th of August 2017.

Core Weekly banner

General messages

I hope your holidays went fine! I’m back from a few weeks, and can’t get to get into this second half of 2017, which looks very promising to me ;)

August means a slow months for everyone: there weren’t a lot of merges as many of us were out in the wilderness, but the team still managed to release v1.7.2.1!

Code changes in the ‘develop’ branch (for v1.7.3.0)

Core

  • #8134: Fixed bug in addMissingProductFields that gives array_merge the priority to $rows[0] instead of $rawProduct. Thank you @christianverardi!
  • #8252: Add context in legacy module translation function, by @aleeks.

Back office

  • #8066: Allow admin folder name inside quick access link. Thank you @prestamodule!
  • #8163: Fix encoded back URL, by @quetzacoalt91.
  • #8202: Add caching for theme yaml file, by @jocel1.
  • #8208: Add active filter in stock management, by @aleeks.
  • #8253: Add class to fix input style bug in AdminOrders controller. Thank you @mehrshadz!

Front office

  • #8195: Reintroduced the guest allowance check in FrontController. Thank you @manfield!
  • #8225: Use PS_GUEST_CHECKOUT_ENABLED … only in checkout, by @quetzacoalt91.

Tests

  • #8226: Add codacy badge in README, by @quetzacoalt91.

Code changes in the ‘1.7.2.x’ branch (for v1.7.2.2)

Core

  • #8138: Fix tax calculation when vat number is used. Thank you @prestamodule!
  • #8210: Fix missing product limit/offset when ordering by price on Sale page, by @jocel1.
  • #8212: Optimize specific price computing by executing the query only when needed, by @jocel1.
  • #8228: Optimise synchronization stock sql, by @aleeks.

Back office

  • #8057: Save before generate combinations, by @fatmabouchekoua.
  • #8063: Display texture image in combination form, by @fatmabouchekoua.
  • #8266: Fix error while reaching AdminModules, by @quetzacoalt91.
  • #8238: Fix wrong final combination price if BC Math is not available, by @eternoendless.
  • #8236: Fix module modal layout, by @maximebiloe.

Front office

  • #8082: Scroll top to product list when paginate, by @fatmabouchekoua.

Code changes in the ‘rtl’ branch (for the 1.7 RTL project)

  • #8241: Fix json file and some translation for Persian language. Thanks @danoosh!
  • #8242: Add a library to composer.json file. Thank you @ramtin2025!
  • #8260: Remove CSS included directly in twig files, by @maximebiloe.

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @christianverardi, @danoosh, @manfield, @mehrshadz, @prestamodule, and @ramtin2025!

Thank you to the contributors whose PRs haven’t been merged yet! And of course, a big thank you to all those who contribute with tickets and comments on the Forge!

If you want to contribute to PrestaShop with code, please read these pages first:

…and if you do not know how to fix an issue but wish to report it, please read this: How to use the Forge to contribute to PrestaShop. Thank you!

Happy contributin’ everyone!

Viewing all 941 articles
Browse latest View live