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

Bug Bounty Program, the retrospective

$
0
0

For several months, we experimented a Bug Bounty Program with the YesWeHack platform. Here is a retrospective, explaining why we did it, and what happened during this period.

Private program

The security of software cannot be assessed unless it is tested by a lot of hunters.

PrestaShop relies on a lot of dependencies, with hundred of thousands lines of code, and this has been true since the very first versions.

We considered that publishing a public program, available for all, in the first place was risky as it could bring a huge volume of duplicated reports and create frustration among hunters. That is why we chose a private program first.

The benefit of the private program is to limit the number of hunters and manage the reporting flow. For each reported security issue, resources must be dedicated to understand it, reproduce it, build a patch, test the patch by the QA Team, etc. This can be quite expensive, so it is important to be able to adjust how many issues are reported thanks to the private program settings.

The process can appear quite slow and boring but it is nevertheless necessary to leave no room for doubt.

Public program

After a few months running this private program, we noticed the number of reports had decreased significantly. We finally released the program to the public on the 23rd of July 2020.

We thought that the public opening would bring in a huge volume of new reports, but this did not happen to our great surprise. It seems the hunters who participated to the private program helped us fix a large majority of security issues.

At the time we write this article, only one report submitted after the opening of the program to the public has been validated.

The big aim of having a Bug Bounty Program in public is to show everyone, and particularly our community, that our software can be trusted. We know it is secured because it has been tested by dozens of hunters and will be continuously tested by new hunters.

Some statistics

At the opening in March, more than 70 hunters were invited to the program.

Since then, we received a total of 98 reports

  • Invalid: 4
  • Out of Scope: 6
  • Informative: 26
  • Duplicate: 17
  • Won’t fix: 2
  • Valid: 43
  • CVSS Score average: 5.59

The following graphs cover the full period and highlight the reason why we decided to open the program to the public. Only valid reports are considered.

The graph below is a representation of the number of reports we received during the period.

Valid reports

Here is the representation of the CVSS3 Score results.

CVSS3 Score

List of main vulnerabilities.

Common vulnerabilities

What’s next?

There is no plan to modify the program in the short term. For now, the Security team of PrestaShop continue to examine incoming bug reports with dedication. We are quite happy to use YesWeHack and the platform is really smooth, elegant and make the security reports easier to manage than our old security mailing list.

For next release, hunters will be notified automatically, so we are waiting for you hunters on YesWeHack platform!


PrestaShop Core Weekly - Week 37 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 7th to Sunday 13th of September 2020.

Core Weekly banner

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

Back office

Front office

Installer

Tests

Merge

Code changes in the ‘1.7.7.x’ branch

Back office

Front office

Tests

Code changes in modules, themes & tools

Changes in developer documentation

Example modules

PrestonBot

  • #104: Do not add Waiting for wording when already validated & fix PR validation comment being wrongly removed, by @atomiix
  • #103: Use prestashop/github-webhook-parser, by @atomiix
  • #102: Link wording to the right diff file and line, by @atomiix

PrestaShop contributors website

The PrestaShop open source project

Faceted search module

Example module mailtheme

Order Notifications on the Favicon module

Core Weekly Generator tool

Issues Bot

PHP Developer Tools

  • #35: Add a stub for module class, allowing developers to not redefine properies in all modules, by @Quetzacoalt91

Check payment module

  • #37: Added Github Actions, composer.lock & Renamed README.md, by @Progi1984

Buy button lite module

Prestashop UI Kit

Docker images

  • #226: Add missing versions, use proper php version and add erase / install database parameters, by @PierreRambaud

Customer reassurance block module

Shopping cart module

  • #66: Added workflows for PHPStan, PHPCS, Build Release, by @Progi1984

Custom text module


Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @moncef-essid, @matks, @LukaS0lncev, @jolelievre, @PierreRambaud, @Progi1984, @atomiix, @dependabot[bot], @boubkerbribri, @matthieu-rolland, @SimonGrn, @kpodemski, @Seleda, @dariusakafest, @davidglezz, @jbenezech, @Quetzacoalt91, @nesrineabdmouleh, @sowbiba, @antoninblasco, @JoshTheDerf, @JevgenijVisockij, @jimmydupre, @PululuK, @bhavikvaghani!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

PrestaShop Core Weekly - Week 38 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 14th to Sunday 20th of September 2020.

Core Weekly banner

General messages

Dear developers,

PrestaShop project has reached a major open source milestone: the role of maintainer has been opened.

For years only PrestaShop employees could become maintainers for the project. This is not true anymore. Involved contributors can now apply for the position if they want to help the project to go forward.

Some applications have already been submitted and will follow the voting process described in the rules.

In the meanwhile, there are no more ‘todo’ items in the 1.7.7 backlog. Once only the column ‘Done’ contains items, the Release Candidate 1 will be built and published. And if no issues are found in this version… then PrestaShop 1.7.7.0 will be out!

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

Back office

  • #21060: Fix get scalar value from VO in recently merged deleter services. Thank you @zuk3975
  • #21053: Introduce CannotBulkDeleteCustomizationFieldException. Thank you @zuk3975
  • #20998: Use php FILTER_VALIDATE_DOMAIN filter in MediaServerConfiguration’s validateConfiguration method, by @matthieu-rolland
  • #20965: Remove undefined 2nd argument passed to scrollToPreviousPaginationBar(). Thank you @davidglezz
  • #20940: Check if SSL is enabled for smarty $base_url. Thank you @okom3pom
  • #20926: Addons url with good language when exist. Thank you @okom3pom
  • #20828: Introduce ManufacturerIdInterface for ValueObjects, by @jolelievre
  • #20805: Add DeleteProductCommand and BulkDeleteProductCommand. Thank you @zuk3975
  • #20688: Show profile icon on mobile and hide see my shop text, by @NeOMakinG
  • #20549: Add RemoveAllCustomizationFieldsFromProductCommand And Introduce AbstractObjectModelPersister. Thank you @zuk3975
  • #20413: Use SymfonyContainer::getInstance() instead of ContainerBuilder::getContainer(‘admin’), by @atomiix

Installer

Merge

Code changes in the ‘1.7.7.x’ branch

Core

Back office

Tests

Code changes in modules, themes & tools

Faceted search module

Changes in developer documentation

Buy button lite module

jQuery Live Polyfill library

PrestaShop contributors website

Contact Form module

Check payment module

Custom text module

Shopping cart module

Example modules

Issues Bot

OnBoarding module

Google Analytics module

  • #73: Avoid force hooking of ps_featuredproducts on displayHome hook, by @matks
  • #72: Add Configuration option to disable Back Office tracking, by @matks
  • #68: Handle NOW correctly when creating order and register in SQL, by @matks
  • #67: Fix logic, avoid double pageview for BO pages, by @matks
  • #59: Avoid array to string error on homepage with cart. Thank you @Guisardo

Prestashop UI Kit

  • #102: Use local version of fonts in case of offline use, by @NeOMakinG

Product Comments module

  • #65: Fix line breaks of comments not existing anymore on FO, by @NeOMakinG

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @zuk3975, @boubkerbribri, @dependabot[bot], @nesrineabdmouleh, @ttoine, @matthieu-rolland, @PululuK, @PierreRambaud, @moncef-essid, @Progi1984, @jolelievre, @davidglezz, @atomiix, @matks, @okom3pom, @sowbiba, @jordiweblidera, @NeOMakinG, @Guisardo, @Quetzacoalt91!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

Release Of PrestaShop 1.7.6.8

$
0
0

The ongoing work on security for PrestaShop software continues. We have identified and fixed new minor security issues, it has been decided to deliver a new maintenance release for 1.7.6.X branch.

1.7.6.8 is available!

Reminder: the 1-Click Upgrade module’s latest version is v4.10.1, don’t forget to upgrade it.

Security fixes

4 security fixes have been included in this patch version:

We also include an updated version of the contactform module

More information about why it is important to update:

Notable change

Because of mail sending issues, two methods have been removed from the Mail::send method. Functions htmlentitiesDecodeUTF8 and stripslashes are no longer executed before sending the mail.

Download PrestaShop 1.7.6.8 now!

Since version 1.7.6.8 is a “patch” update to version 1.7.6.7, upgrading from any 1.7.6 version will be easy: features will work better, and modules & themes which worked fine on 1.7.6.x will work the same with 1.7.6.8. Upgrades from a standard 1.7.x version should work just as well.

PrestaShop Core Weekly - Week 39 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 21th to Sunday 27th of September 2020.

Core Weekly banner

General messages

Dear Developers,

A lot of things happened last week!

First, PrestaShop 1.7.6.8 has been released. don’t forget to update as this patch version fixes 3 security issues.

Second, the road is now open to deliver PrestaShop 1.7.7.0 first Release Candidate. A first build has been achieved and delivered to QA team to run the tests campaign before publishing it.

Finally, a 2 years old bug in the profiler, awaited by a lot of users has finally been fixed in develop branch!

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

Back office

  • #21086: Grid bulk delete confirmation modal - Shop Parameters > Traffic SEO URLs, by @sowbiba
  • #21085: Grid bulk delete confirmation modal - Shop Parameters > Contacts, by @sowbiba
  • #21084: Grid bulk delete confirmation modal - Advanced Parameters > Webservice keys, by @sowbiba
  • #21083: Grid bulk delete confirmation modal - Advanced Parameters > DB > Backups, by @sowbiba
  • #21082: Grid bulk delete confirmation modal - Advanced Parameters > DB > SQL Requests, by @sowbiba
  • #21081: Grid bulk delete confirmation modal - Advanced Parameters > Team > Profiles, by @sowbiba
  • #21080: Grid bulk delete confirmation modal - Advanced Parameters > Team > Employees, by @sowbiba
  • #21079: Grid bulk delete confirmation modal - Advanced Parameters > Emails, by @sowbiba
  • #21074: Function mobileNav has no arguments. Thank you @davidglezz
  • #21073: Improve calendar Javascript setup. Thank you @davidglezz
  • #21072: Simplify computeMappingBetweenOldAndNewPositions(). Thank you @davidglezz
  • #21033: Grid row delete confirmation modal - Customer service > Order messages, by @sowbiba
  • #20584: Split BO css into multiple bundles, by @NeOMakinG
  • #20261: Modify adresses listing in Customer page to use Grid instead, by @sowbiba
  • #19703: Handle empty states for category grids, by @atomiix

Front office

Tests

Code changes in the ‘1.7.7.x’ branch

Core

  • #20378: Use Computing precision instead of hardcoded 2, by @matks

Back office

  • #21048: Fix [BO- Stores page] Sort by post code not working. Thank you @PululuK
  • #21045: Fix Features page throwing an exception after specific steps are made, by @atomiix
  • #21031: Fix bad range error when setting free shipping on a previously not free shipping carrier, by @atomiix
  • #21025: Make legacy parameters from routing accessible in migrated pages, by @jolelievre
  • #20760: Add Order - View customer details : Check if nav-bar exist to avoid console errors, by @sowbiba
  • #20628: Restore selectors in Order Page for GDPR to make GDPR module compliant with 1.7.7.0, by @matks

Tests

Code changes in the ‘1.7.6.x’ branch

Core

Code changes in modules, themes & tools

Cross-selling module

Docker images

Nightly board

Changes in developer documentation

Core Weekly Generator tool

  • #51: Dont use zero-padded decimal for day number when using week number input, by @matks
  • #69: FO: Improve display if long text in displayProductPriceBlock. Thank you @idnovate

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @Progi1984, @boubkerbribri, @PierreRambaud, @NeOMakinG, @nesrineabdmouleh, @moncef-essid, @sowbiba, @matks, @atomiix, @mvorisek, @davidglezz, @PululuK, @stijnstroeve, @jolelievre, @SuichiM, @idnovate!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

Hacktoberfest 2020 is coming

$
0
0

Open source has its own tradition when fall starts cooling the atmosphere around, Hacktoberfest! Beer is not flowing like water but code is, and it creates more value than any bunch of slightly tipsy people. ;-)

Curated by the American cloud hosting company DigitalOcean, with Intel and DEV, Hacktoberfest happens online every year in October to celebrate open source. It’s pretty simple: for one month, people are encouraged to engage and create at least 4 pull requests for open source projects on GitHub.

As the open source community spreads universal values, everyone is welcome to learn and share knowledge, and therefore stands together to build beneficial technologies. All those individual contributions create one great collective effort that makes this possible.

As a result, it is probably the best place to start involving in the projects you want to support. And the numbers speak for themselves since last year, no less than 483,127 pull requests have been submitted on 154,767 participating repositories!

Hacktoberfest 2020

Get acquainted with the Hacktoberfest challenge

Every contributor achieving this goal of 4 contributions merged will be sent a pack of nice goodies including a tee-shirt and many wonderful stickers. It is the perfect occasion to start a collection! Looking for a more sustainable gift? An environment-friendly option, the ‘pick trees, not tees’ option, will plant a tree instead of delivering you goodies. ;-)

Everyone is welcome, especially beginners, just find the open source projects you want to involve in and do your bit! It is just a four-step process:

:wave: Register for Hacktoberfest first, it is right here.

:computer: Create pull requests to involve in your favorite projects - it must have a public GitHub repository.

:busts_in_silhouette: Wait for the project maintainers to review your contributions.

:white_check_mark: Make sure your pull requests are considered as valid to complete the challenge.

:repeat: Do it again to achieve the goal of 4 pull requests!

Contribute to the PrestaShop project

As an open source project, PrestaShop is thrilled to take part in this challenge. Let’s face it: the team will not be able to speed up reviews and merges but since a great amount of the core team’s time is already dedicated to this job, this should not worry you too much.

In any case, we will gladly accept contributions, now and in the future. Here are a few steps to follow:

  1. Create a GitHub account, if you do not have one already.
  2. Fork the PrestaShop project to your Github account.
  3. Clone your fork to your local machine.
  4. Create a branch in your local clone for your changes.
  5. Change the files in your branch, follow our coding standards and play by the rules.
  6. Push your branch to your fork in your GitHub account.
  7. Create a pull request for your changes on the PrestaShop project.
  8. Identify your contribution with the Hacktoberfest label. Or add it to the description.
  9. Wait for the core developers to review your contribution, bring possible improvements you should make for your code to be merged.
  10. And here you are: it is merged, you succeeded in completing your pull request!

Want a small tip? Pick one of the good first issues to get all beginner-friendly improvements and bugs to fix. Read more about this label on Build.

Need to meet your open source mates? Go to prestashop.slack.com to join a worldwide community of open source lovers and PrestaShop developers!

PrestaShop Core Weekly - Week 40 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 28th of September to Sunday 4th of October 2020.

Core Weekly banner

General messages

Dear developers,

The past week has been filled with lot of interesting events!

First, PHP 8.0 Release Candidate 1 has been delivered and is available for testing. Obviously, we suggest helping the test of this version as this is the future of PHP.

Secondly, Hacktoberfest has started on the 1st of October. But the very first days of the event have been complicated: the event experimented a huge spam contributions wave. The consequences of this spam are that the rules of Hacktoberfest changed on the 3rd of October: projects now need to opt-in for the event and Pull Requests must be either merged, approved, or labeled ‘hacktoberfest-accepted’ to be accepted as a participation.

The PrestaShop team has decided to opt-in to this event so your (valid) contributions will be acknowledged as participations for this edition of the Hacktoberfest!

Finally, the QA team is still running the test campaign on the Release Candidate 1 build delivered the week before.

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

Back office

  • #21277: Fixed call for Windows PrestaShop Components, by @Progi1984
  • #21264: Clean a bit class AdminController. Thank you @ksaandev
  • #21250: Fix left sidebar while onboarding is on, by @NeOMakinG
  • #21223: Introduce namespaces in adapter - Update, Validate, Repository. Move recent services.. Thank you @zuk3975
  • #21166: Change default ‘Erase previous images’ button state to no. Thank you @aleksiuno
  • #21121: Make Module manager error notifications fixed. Thank you @Sinepel
  • #21117: Use ProductCustomizationFieldUpdater service in CustomizationFieldHandlers. Thank you @zuk3975
  • #20830: Introduce SetAssociatedProductAttachmentsCommand and AssociateProductAttachmentCommand. Thank you @zuk3975
  • #20544: Add RemoveAllAssociatedProductSuppliersCommand. Thank you @zuk3975
  • #19982: Add order internal notes. Thank you @ks129

Front office

Tests

Code changes in the ‘1.7.7.x’ branch

Back office

  • #21203: Build assets for 177, by @jolelievre
  • #21195: Replaced SQL query to fetch modules hooked on stat hook by Hook function to have a singl Source of Truth, by @matks
  • #21190: Add missing security annotation on new 177 routes, by @jolelievre

Installer

Tests

Code changes in the ‘1.7.6.x’ branch

Installer

Code changes in modules, themes & tools

Changes in developer documentation

Cross-selling module

Core Weekly Generator tool

Wishlist block module

PrestonBot

  • #106: Add link to explain types and categories, by @eternoendless
  • #105: Don’t search wording for ME PRs + add label even when only existing wording has been found, by @atomiix

Check payment module

Custom text module

Order Notifications on the Favicon module

Google Analytics module

  • #80: Clean file GoogleAnalyticActionLib.js from useless comments. Thank you @prestaforum

Dashboard Products module

Product Comments module

Faceted search module

PHP Developer Tools

Docker images

PrestaShop Specifications

The PrestaShop open source project

  • #37: Create a list of modules and themes, by @ttoine

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @okom3pom, @ThanasisMpalatsoukas, @ksaandev, @Progi1984, @nesrineabdmouleh, @PierreRambaud, @matks, @prestaforum, @PululuK, @pablopolyte, @SimonGrn, @NeOMakinG, @eternoendless, @dependabot[bot], @zuk3975, @boubkerbribri, @ttoine, @SebSept, @jolelievre, @atomiix, @Quetzacoalt91, @dali-rajab, @aleksiuno, @SD1982, @Sinepel, @sergioregueira, @davidglezz, @unlocomqx, @LouiseBonnard, @ks129!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

Do you speak PrestaShop? – September 2020 edition

$
0
0

Contributing to PrestaShop is not only about the code, it’s also about taking part in the PrestaShop translation project! This report will tell you how the translations of the software evolved in September.

Crowdin Monthly banner

Project news

Join the user club!

You are using PrestaShop and would like to participate in its evolution? Our team would be glad to have your feedback on your experience with the software. Members of the user club will be consulted regularly about their experience with PrestaShop and will have the opportunity to give their opinion on the next news.

Let’s build PrestaShop together, join the User Club to take part in our privileged user panel! :fire:

:two_hearts: Special thanks to newcomers

Many people subscribe to the project(s) of their choice each month, but not so many start translating straightaway. For that reason, we would like to thank the ones who rushed into the effort immediately!

So lots of love to the dedicated: A. L, Artjom Shapenkov, Tanoue, WEB.Com.Az, Daniele1970 and Pietro Arturo Panetta.

See you soon on Crowdin… and in PrestaShop. :stuck_out_tongue_winking_eye:

A few stats

  • 24 members were active on the project this month.
  • A total of 29,717 words have been translated and 23,340 validated.
  • All this in 18 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 PrestaShop can’t thank you enough for your dedication! Here are the 10 most active translators and proofreaders for September 2020.

Top 10 translators in September:

 TranslatorLanguage# Words
1.Girdman.com (anargaragezov)Azerbaijani12,291
2.Daniele1970Esperanto & Italian10,266
3.mirmalEsperanto2,622
4.A. L (roynsdx)Arabic1,869
5.jbonelloMaltese1,007
6.PrestaServiceProAzerbaijani467
7.AmirRzdPersian373
8.Angela Anna (Annajeronima)Mongolian201
9.Tantely R. (rabtaray)Malagasy191
10.WEB.Com.AzAzerbaijani145

Top 10 proofreaders in September:

 ProofreaderLanguage# Words
1.Girdman.com (anargaragezov)Azerbaijani14,654
2.Daniele1970Esperanto & Italian6,661
3.AmirRzdPersian1,505
4.Laimonas Mituzas (laimonas)Lithuanian314
5.webdvl (megashopba)Czech, Slovak53
6.Ronny (rbuelund)Dannish49
7.Rauno Riikman (weaver)Finnish47
8.Anouar Talidi (Anouar_Talidi)Arabic43
9.Marcin Orzechowski (Martinovy)Polish6
10.Stamatis (breezer)Greek5

Congrats, and welcome to our new top contributors! :clap:

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 September 2020, PrestaShop 1.7.7 was fully available (= 100% translated and validated) in 13 languages:

Chinese TraditionalDanishDutchFrench
GreekItalianLithuanianPortuguese, Brazil
RomanianSlovakSloveneSpanish
Swedish   

Languages with the best evolution

In comparison with August 2020, the following languages had the best progress thanks to the translation community:

  • Esperanto (+13% to reach 57% translated)
  • Azerbaijani (+10% to reach 27% translated)
  • Arabic (+3% to reach 97% translated)

Best translation progress for September 2020

A huge thank you 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 other proofreaders! Thanks to 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 to keep a high level of validated strings vs. translated strings, to make sure everyone benefits from the latest translations!

At the end of September 2020, some languages would still benefit from some proofreading:

  • Spanish, Argentina (100% translated vs 13% validated).
  • Esperanto (57% vs 13%). (But we can observe an increase of 13% since last month! Congratulations! :fire:)
  • Spanish, Venezuela (52% vs 11%).
  • Galician (100% vs 59%).
  • Spanish, Mexico (93% vs 57%).

Languages that need proofreading

If you wish to help to proofread what has been translated, please contact PrestaShop with the language you’d like to proofread: just send an email to translation@prestashop.com. Your help is needed!

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

If you want to gather your fellow translators to work towards a better harmonization, start a glossary, or anything else, do let me know: I’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! :raising_hand:


PrestaShop Core Weekly - Week 41 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 5th to Sunday 11th of October 2020.

Core Weekly banner

General messages

Dear developers,

The Quality Assurance team found multiple issues in the first build of PrestaShop 1.7.7.0 Release Candidate 1, and the issues list contains one critical bug and one major bug:

Unfortunately, the Release Candidate 1 cannot be released because of these bugs.

The bug reports have been moved into the 1.7.7 Kanban and are currently being fixed. Following the fixes, maintainers team will be able to build a new ZIP archive which will be Release Candidate 1 build 2 and it will be delivered to QA team again for validation.

As usual, informations about the release status will be provided on the release tracking issue for 1.7.7.0 .

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

  • #21365: Fixed Currency Numeric Iso Code (Nullable & Default Value), by @Progi1984
  • #21314: Tools::getDefaultIndexContent() generates obsolete headers. Thank you @PululuK
  • #21279: Carrier: improve documentation of shipping properties. Thank you @rmilecki
  • #21057: Reduce conditions complexity. Thank you @davidglezz
  • #20653: HelperForm field label not work in switch type . Thank you @PululuK

Back office

  • #21372: Update decimal number to version 1.4 And update all use statements, by @jolelievre
  • #21335: Fixed “Add new alias” button which was disappearing after adding a new alias. BO Shop param search. Thank you @roncarino
  • #21328: Improve SQL requests on specific prices. Thank you @clotaire202
  • #21307: Refacto UpdateProductOptionsHandler to use Product repository. Thank you @zuk3975
  • #21301: Add commands for Specific Price priorities handling. Thank you @zuk3975
  • #21295: Deprecated AddSpecificPriceCommand getter/setter & clarified misnamed property. Thank you @zuk3975
  • #21276: Fix typo in AdminController code. Thank you @ksaandev
  • #21260: Remove Add/Update/Delete CustomizationField handlers (Redundant & Untested). Thank you @zuk3975
  • #21239: Fix deletion message in edit product page, by @marionf
  • #21226: Modify partial update in AbstractObjectModelRepository to simplify argument & implement it in UpdateProductBasicInformationHandler. Thank you @zuk3975
  • #21218: Fix tab entity tabLangs variable mapping. Thank you @aleksiuno
  • #21215: Improvement/emphasize irreversibly of thumbs regeneration. Thank you @aleksiuno
  • #21168: Fix FrontController names in modules hook-exceptions. Thank you @dali-rajab

Front office

  • #21330: Return a real 404 when product doesn’t exist instead of a 302 redirection. Thank you @Sinepel
  • #21217: Make FO product delivery time bold. Thank you @aleksiuno

Tests

Code changes in the ‘1.7.7.x’ branch

Back office

Front office

  • #21297: Fix variable name in order_customer_comment.html.twig. Thank you @okom3pom
  • #21266: Fix wrong combination image shown when clicking to zoom, by @atomiix
  • #20927: Avoid possible notice due to breaking change. Thank you @kpodemski

Installer

  • #20201: Fix throw InstallControllerHttpSystem::trans during installation process. Thank you @mushroot

Tests

Code changes in modules, themes & tools

Contact Form module

  • #53: Confirmation text after settings change. Thank you @kpodemski

Browsers and operating systems statistics module

Brands list module

  • #9: Update short description and logo. Thank you @Julievrz

Best-selling products statistics module

  • #9: Update short description and logo. Thank you @Julievrz

OnBoarding module

Wire payment module

Share Buttons module

Image slider module

Product Comments module

Data mining for statistics module

Shopping cart module

Cross-selling module

PrestaShop Specifications

Faceted search module

Wishlist block module

Decimal library

PrestonBot

  • #107: Use same twig version as the PrestaShop project, by @atomiix

Changes in developer documentation

Best vouchers statistics module

Best suppliers statistics module

  • #9: Update short description and logo. Thank you @Julievrz

Best customers statistics module

  • #17: Update short description and logo. Thank you @Julievrz
  • #16: Return best customers if visits are not logged. Thank you @jf-viguier

Best categories statistics module

Available quantities statistics module

MJML Theme Converter

Advertising module

Custom text module

Gamification module

  • #74: Add lazy native attribute to images to avoid loading when hidden, by @NeOMakinG

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @kpodemski, @Julievrz, @dependabot[bot], @jolelievre, @nesrineabdmouleh, @khouloudbelguith, @PierreRambaud, @PululuK, @Progi1984, @marionf, @Quetzacoalt91, @NeOMakinG, @eternoendless, @atomiix, @boubkerbribri, @roncarino, @Sinepel, @clotaire202, @jf-viguier, @okom3pom, @justeen35, @sowbiba, @zuk3975, @rmilecki, @ksaandev, @matks, @LouiseBonnard, @aleksiuno, @dali-rajab, @davidglezz, @matthieu-rolland, @mushroot!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

Contributor interview: Pululu Kinanga André

$
0
0

An open source community is more than just pull requests made by faceless strangers. In order to better understand the people who contribute time and skills to the PrestaShop project, we’re writing a series of interviews with contributors of all ranges. This week, meet Pululu Kinanga André, one of our great developers on GitHub!

Hi Pululu! First, could you tell us a bit about yourself?

I am Pululu and I come from Angola. I arrived in France in 2013 for my studies, after graduating in electronics and telecommunications. I have a degree in Management Information System (MIS), software development, and design. I am currently assisting the IT department of a digital agency in their migration and automation strategy. I am also interested in systems administrations (Unix), development, software design, and embedded systems.

If I had to summarize myself in a few words, I would write that I am “a discreet lazy lazybones who works hard and an Eternal admirer of the complexity of simple things”.

When and why did you get involved in contributing to the PrestaShop project?

I started to be interested in the open source philosophy in 2014. I found it was an amazing way to be able to help and share my vision with the world! It is now a conviction that we can all help each other and, together, build powerful and sustainable solutions. And a few years later, I started to interact on StackOverflow.

I had my first contact with the PrestaShop ecosystem in 2016, I was engaged in a work-study program at Alibabike, in La Rochelle. In 2017, I joined the agency123 as a developer and designer, and I made huge progress very quickly because PrestaShop is their area of expertise and their core business.

What motivates you?

In my opinion, the decision to migrate Prestashop to Symfony has divided the community. Many members and contributors were disappointed and discouraged. I believe most of them were afraid of not understanding the new system and therefore losing their expertise.

As for me, it motivated me to contribute because it was a way of saying: guys, come back… this is no big deal, look, it’s very simple! I also wanted to learn and make progress, discuss with the authors of the solution, be credible, and reassure our +200 customers that I master the solution we offer with the agency.

Finally, I think contributing is also a way to thank all of those who have contributed before and to help the software evolve.

Do you have any advice for first-time PrestaShop contributors?

You are not alone! PrestaShop has a rather large community and, likely, other users have already encountered the same problems as you. By contributing, you are helping to improve the solution, and this is an opportunity to share directly with the PrestaShop team.

What’s the number one thing you’ve learnt by contributing to Open Source projects?

I was not alone and there are many ways to look at it!

Thank you Pululu, we hope to see more from you as PrestaShop evolves! :)

PrestaShop Core Weekly - Week 42 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 12th to Sunday 18th of October 2020.

Core Weekly banner

General messages

Dear developers,

Last week a major event happened in PrestaShop history: the maintainer team welcomed a new member that is not a PrestaShop employee! Long-time contributor @kpodemski was granted the maintainer status after he submitted his application on the 17th of September. This is a very important milestone for the project.

Following this amazing news, if you speak French you might be interested into the PrestaShop Day France Online that happens today Tuesday 20th of October from 9:15am (Paris time) to 5:45pm. Live sessions are scheduled for the whole day and will cover multiple topics, speakers being PrestaShop employees or from the PrestaShop community, merchants and developers.

In the meantime, all the major and critical bugs reported in PrestaShop 1.7.7.0 Release Candidate 1 first build have been fixed in the 1.7.7.x branch. A new build has been delivered to QA team for, once again, testing before public release. Well, the testing will probably start tomorrow as QA team will be busy with the PrestaShop Day event.

If you can’t wait to test PrestaShop 1.7.7.0 Release Candidate, you can warm up by testing the php8.0.0 Release Candidate 2 published on the 16th of October 2020.

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

Back office

Front office

Web services

  • #21416: Update webservice doc url in WebserviceRequest. Thank you @PululuK

Code changes in the ‘1.7.7.x’ branch

Core

Back office

Front office

  • #21362: Possibility to check if we’re in product quick view mode. Thank you @kpodemski

Tests

Code changes in modules, themes & tools

Faceted search module

OnBoarding module

Changes in developer documentation

PrestaShop Specifications

Catalog statistics module

  • #14: Update short description and logo . Thank you @Julievrz

Catalog evaluation statistics module

  • #18: Update short description and logo . Thank you @Julievrz

Cash on delivery module

Carrier distribution statistics module

  • #9: Update short description and logo. Thank you @Julievrz

Buy button lite module

Decimal

Core Weekly Generator tool

  • #61: Extend coreteam projects list, by @matks

Shopping cart module

  • #70: Confirmation text after settings change. Thank you @kpodemski

Contact Form module

  • #52: Modules - Buttons should be updated. Thank you @PululuK

MJML Theme Converter

  • #8: It’s an email for shop not customer. Thank you @okom3pom

Example modules

Check payment module

Prestashop UI Kit

  • #104: Adjustement of alert colors, fontsize and buttons contrasts, by @NeOMakinG

Product Comments module

PrestonBot

  • #93: Ask feedback to author of community PRs, by @atomiix

Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @dependabot[bot], @nesrineabdmouleh, @atomiix, @Progi1984, @SimonGrn, @okom3pom, @npankaj365, @boubkerbribri, @taoufiqaitali, @matks, @LouiseBonnard, @PierreRambaud, @kpodemski, @jolelievre, @PululuK, @zuk3975, @Julievrz, @Magicalname, @NeOMakinG, @zapalm, @JevgenijVisockij, @sowbiba, @jf-viguier, @Xaconi, @marionf, @idnovate, @JoryHogeveen, @Hlavtox, @Oksydan!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

PrestaShop Core Weekly - Week 43 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 19th to Sunday 25th of October 2020.

Core Weekly banner

General messages

1.7.7.0 Release Candidate 1 status

The QA team is still running the test campaign on the second build for Release Candidate 1.

A major issue has been found in this build: a change made from the Back-Office in an order that does not use the default currency results in the details of this order being displayed with the wrong currency symbol#21566.

Since this issue is located into the “View an Order” Back-Office page, it has been decided that a third build, created after the bug has been fixed, will be necessary. However, this 3rd build test campaign will only target the “Order” Back-Office pages; other areas of the software will not be tested again as they have already been verified during the current test campaign.

If no other issues are reported, 1.7.7.0 Release Candidate 1 should be delivered by the end of this week.

A new external maintainer

The maintainer team welcomed another new member that is not an employee of the PrestaShop Company: @pululuk, who opened his first Pull Request for the project over a year ago, was granted the maintainer status after he submitted his application on October 2nd. Another major milestone for the project and a warm welcome for him!

Notable progress on Continuous Integration

Thanks to @Progi1984, our Continous Integration is now analyzing PrestaShop code under level 3 of PHPStan. PHPStan has been recognized as a quality vector for PHP projects and we hope it will greatly benefit PrestaShop.

Composer v2 is released

You might have noticed it, the package Manager for PHP Composer version 2 has been released! Some packages and projects need an update to be compatible with it and PrestaShop is no exception. We achieved compatibility with Composer v2 this morning so you can use this new version when contributing!

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

Back office

  • #21511: Remove unused webpack and npm files in admin-dev, by @NeOMakinG
  • #21400: Introduce ProductPackUpdater & add behats for packing combinations. Thank you @zuk3975
  • #21397: Introduce ProductTagUpdater & RemoveAllAssociatedProductTags & RemoveAllAssociatedAttachments command. Thank you @zuk3975
  • #21253: Rename product price fields labels, by @marionf
  • #21110: Use ProductRepository in AddProductHandler. Thank you @zuk3975

Front office

Tests

Code changes in the ‘1.7.7.x’ branch

Core

  • #21449: Update modules (blockreassurance/dashtrends/ps_checkpayment/welcome), by @Progi1984

Back office

Front office

Tests

Code changes in modules, themes & tools

Reminder module

  • #26: Update short description and logo . Thank you @Julievrz

Customer data privacy block module

  • #22: Update short description and logo . Thank you @Julievrz

Custom text module

  • #48: Update short description and logo . Thank you @Julievrz

Currency selector

  • #21: Update short description and logo . Thank you @Julievrz

Contact informations module

  • #41: Update short description and logo . Thank you @Julievrz

Changes in developer documentation

Faceted search module

Contact Form module

Nightly board

Wishlist block module

PrestaShop Specifications

  • #159: add specs for features, brands and tax rules in the add / edit product page, by @marionf

Cash on delivery module

OnBoarding module

Product Comments module

Gamification module


Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @boubkerbribri, @Julievrz, @eternoendless, @dependabot[bot], @matks, @NeOMakinG, @pablopolyte, @marionf, @PululuK, @jolelievre, @nesrineabdmouleh, @Progi1984, @taoufiqaitali, @kpodemski, @matthieu-rolland, @okom3pom, @PierreRambaud, @zuk3975, @moncef-essid, @davidglezz!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

Automated UI tests tutorial

$
0
0

One year ago, the QA team started to develop a new test framework, based on Puppeteer, Mocha, and Chai. You can read more about the framework in this previous article: The (new) PrestaShop Test Framework. Since then, the tests coverage has been continually increasing, and we recently improved our framework by switching to Playwright.

In this article, we will explain how to create a new UI (User Interface) test for the PrestaShop core project.

Before we start, you should definitely read about the stack, and the architecture chosen for this project in the PrestaShop devdocs.

I. Writing the scenario

The first step to writing your scenario is to identify exactly what you want to test, and limit the test’s scope to that. For this example we will be checking that the customer link on “Orders” page (on the Back Office) redirects to the “view customer” page.

The second step involves a manual check of this very scenario to be sure it’s working, and to write down all the steps needed, from start to finish:

  • Log in to the Back Office
  • Go to the “Orders” page
  • Reset all filters
  • Filter orders by customer name
  • Click on customer link on grid
  • Check “View customer” page is displayed

Now that we have the scenario, we can create a new javascript file and write our scenario using Mocha (see example below). The directory in which we create our file should be chosen wisely (Which campaign? BO or FO? Which page in BO? …). This file organization is very important since Mocha lets you run test by folders (recursively or not), so grouping your tests by features or meta-features (pages) is a very good idea.

// 'describe' = scenario// 'it' = stepdescribe('View customer form orders page',asyncfunction(){it('should login in BO');it('should go to orders page');it('should reset all filters');it('should filter orders by customer name');it('should check customer link');});

Note 1: You can create nested describes (scenarios inside scenarios) in the same file, if you need to regroup some tasks in a more readable way. Keep in mind that the generated report will follow your hierarchy!

Note 2: It’s a good practice to add more information about the scenario as a comment before the main describe, so anyone opening the file can see what the test exactly does (without reading all the file).

/*
Go to orders page
Filter by customer name "J. DOE"
Click on customer link on grid
Check "View customer" page is displayed 
 */

II. Opening/Closing the browser tab

For each and every UI test, we need a browser. This framework includes a set of helper functions to abstract all of this: open a browser, create a new browser context and/or a new tab, etc.

The helper file is located in the utils directory, and we can require it using the module-alias library as below:

require('module-alias/register');consthelper=require('@utils/helpers');

Note: To find all shortcuts you can use with module-alias, check the package.json file.

Once we included the helper, we are able to create the Mocha hooks functions inside our describe.

In the before and after functions, we only need to open/close the browser context, and the page (the browser tab) through the helper methods. We don’t need to worry about opening the browser itself because it’s handled by the setup file, which is a file executed by mocha before each run.

consthelper=require('@utils/helpers');letbrowserContext;letpage;/*
Go to orders page
Filter by customer name "J. DOE"
Click on customer link on grid
Check that "View customer" page is displayed 
 */describe('View customer form orders page',asyncfunction(){before(asyncfunction(){browserContext=awaithelper.createBrowserContext(this.browser);page=awaithelper.newTab(browserContext);});after(asyncfunction(){awaithelper.closeBrowserContext(browserContext);});it('should login in BO');it('should go to orders page');it('should reset all filters');it('should filter orders by customer name');it('should check customer link');});

III. Using common tests

Some steps are used repeatedly in a lot of scenarios, so the QA team decided to store them in a folder called commonTests.

First we need to require the file containing the steps we’re interested in, still using the require module like before:

// Require common test loginconstloginCommon=require('@commonTests/loginBO');

Login BO (with the default admin account) is a part of these common tests, and we can use it in our new test like this:

it('should login in BO',asyncfunction(){awaitloginCommon.loginBO(this,page);});

Note: We can specify the user and password we log in with.

it('should login in BO',asyncfunction(){awaitloginCommon.loginBO(this,page,'yourLogin','yourPassword');});

IV. Requiring needed pages

Each scenario has its own needs! All pages that the browser interacts with (BO, FO and others), the data needed to create or import (a product, cart rule, customer …), a specific option to open the new tab in the browser…

After writing the scenario, we now know which pages are needed. For this example, we need the following Back Office pages: “dashboard”, “orders”, and “view customer”.

To find the exact locations of the pages to require, read How to contribute and create UI tests, or explore the pages folder.

// Import pagesconstdashboardPage=require('@pages/BO/dashboard');constordersPage=require('@pages/BO/orders');constviewCustomerPage=require('@pages/BO/customers/view');

Note: If a page doesn’t exist yet, you need to create it (in the right folder).

V. Filling out the steps

Each step of the scenario is made of two parts: actions and expected results (through data reporting). Actions are functions in the pages.

Before adding them, you should check for existing ones and their parameters.

Actions

Actions replicate what a user would do in the page (click on an item, fill out text field, etc).

it('should go to orders page',asyncfunction(){// Action// Open Menu and go to orders pageawaitdashboardPage.goToSubMenu(page,// Browser tabdashboardPage.ordersParentLink,// Parent menu item: Sell -> ordersdashboardPage.ordersLink,// Child menu item: Sell -> orders -> orders);});it('should reset all filters',asyncfunction(){// Action// Reset filter in orders list and get number of elementawaitordersPage.resetAndGetNumberOfLines(page,// Browser tab);});it('should filter order by customer name',asyncfunction(){// Action// Filter order by filling "customer" input with "DOE" (lastname of FO default account) awaitordersPage.filterOrders(page,// Browser tab'input',// Filter type (input or select)'customer',// Filter columnDefaultAccount.lastName,// Filter value "DOE");});it('should check customer link',asyncfunction(){// Action// Click on customer link in first rowawaitordersPage.viewCustomer(page,// Browser tab1,// First row in list);});

Here we use different actions methods, like goToSubMenu() in the dashboard page, or resetAndGetNumberOfLines() in the orders page.

Note: To filter orders, the method uses the FO default account which is part of demo data stored in data directory. For this scenario, you need to require this file:

// Import customer "J. DOE"const{DefaultAccount}=require('@data/demo/customer');

Expected results

Data reporting (or “expected results”) is done by checking elements in the page and returning a value (number of lines in a table, content of a modal, value of an input, etc).

This framework uses the expect element from the Chai library, so we need to require it:

// Import expect from chaiconst{expect}=require('chai');

You can then add your expect calls in the test logic:

it('should go to orders page',asyncfunction(){// ActionawaitdashboardPage.goToSubMenu(page,dashboardPage.ordersParentLink,dashboardPage.ordersLink,);// Expected result// Verify that the current page is orders by checking the titleconstpageTitle=awaitordersPage.getPageTitle(page);awaitexpect(pageTitle).to.contains(ordersPage.pageTitle);// We compare with the value stored in the page object});it('should reset all filters',asyncfunction(){// ActionconstnumberOfOrders=awaitordersPage.resetAndGetNumberOfLines(page);// Expected result// Check that number of orders > 0 (that there's at least one element in the list) awaitexpect(numberOfOrders).to.be.above(0);});it('should filter order by customer name',asyncfunction(){// ActionawaitordersPage.filterOrders(page,'input','customer',DefaultAccount.lastName,);// Expected result// Check that we have at least 1 order for the customer named "J. DOE"constnumberOfOrders=awaitordersPage.getNumberOfElementInGrid(page);awaitexpect(numberOfOrders).to.be.at.least(1);});it('should check customer link',asyncfunction(){// Actionpage=awaitordersPage.viewCustomer(page,1);// Expected result// Verify that the current page is "view customer" by checking the title 'View information about J. DOE'constpageTitle=awaitviewCustomerPage.getPageTitle(page);awaitexpect(pageTitle).to.contains(`${viewCustomerPage.pageTitle}${DefaultAccount.firstName[0]}. ${DefaultAccount.lastName}`);});

Implementing a missing method

For this scenario, we used mostly existing functions like filterOrders(). You can check for existing functions in the pages directory.

/**
   * Filter Orders
   * @param page
   * @param filterType
   * @param filterBy
   * @param value
   * @return {Promise<void>}
   */asyncfilterOrders(page,filterType,filterBy,value=''){switch(filterType){case'input':awaitthis.setValue(page,this.filterColumn(filterBy),value.toString());break;case'select':awaitthis.selectByVisibleText(page,this.filterColumn(filterBy),value);break;default:thrownewError(`${filterBy} was not found as a column filter.`);}// Click on searchawaitthis.clickAndWaitForNavigation(page,this.filterSearchButton);}

But there’s a chance that some functions you need are not implemented yet. It’s the case here for the viewCustomer() function.

/**
 * Click on customer link to open view page in a new tab
 * @param page
 * @param row
 * @return {Promise<Page>}, The browser tab opened after the click
 */viewCustomer(page,row){/**
   * openLinkWithTargetBlank : function that open a link in a new tab
   * @param page, actual tab opened
   * @param selector, Element where to click
   * @param selectorToCheck, Element to wait for in the page
   * @return {Promise<Page>}, The browser tab opened after the click
   */returnthis.openLinkWithTargetBlank(page,`${this.tableColumn(row,'customer')} a`,this.userProfileIcon,);}

Note: The openLinkWithTargetBlank function is a generic function that can be used in all pages. You can find more generic functions on pages/commonPage file.

VI. Testing the scenario

Now, we finished writing the scenario and implementing missing functions… it’s time to test it!

```shell script TEST_PATH=”functional/BO/02_orders/01_orders/08_viewCustomer” URL_FO=shopUrl/ npm run specific-test

View customer from orders page ✓ should login in BO ✓ should go to orders page ✓ should reset all filters ✓ should filter order by customer name ✓ should check customer link 5 passing (19s)


## VII. Adding steps Identifiers

Steps identifiers help track failing steps between different runs thanks to the [nightly](https://nightly.prestashop.com/) algorithm.

Each step should have its own! You can found more information [here](https://devdocs.prestashop.com/1.7/testing/ui-tests/how-to-contribute-and-create-ui-tests/#test-identifier).

After adding this identifier, each step should look like this:

```js
it('should check customer link', async function () {
  await testContext.addContextItem(this, 'testIdentifier', 'viewCustomer', baseContext);

  // Click on customer link in first row
  page = await ordersPage.viewCustomer(page, 1);

  // Verify that the current page is view customer by checking the title
  const pageTitle = await viewCustomerPage.getPageTitle(page);
  await expect(pageTitle).to
    .contains(`${viewCustomerPage.pageTitle} ${DefaultAccount.firstName[0]}. ${DefaultAccount.lastName}`);
});

Note 1: The baseContext parameter should be declared in the beginning of the test. It must be unique, and for that we used the test’s file path.

constbaseContext='functional_BO_orders_orders_viewCustomer';

Note 2: No need to add a step identifier to common steps, they already have one.

VIII. Running ESLint

ESLint is a tool currently used by the QA team that helps enforce code style rules in JavaScript files. To run it, use the command npm run lint. You may have to fix errors reported by this tool before submitting your UI test.

```shell script npm run lint-fix

ESLINT –fix –ignore-path .gitignore .

```

IX. Creating your pull request

Now that the test is ready, it needs to be added to the PrestaShop tests campaign! You can do so by creating a pull request, following the contribution guidelines.

Link to the PR used for this example: #20280.

PrestaShop 1.7.7.0 RC1 Is Ready To Be Tested!

$
0
0

We are really happy to announce that we are very close to finishing the 1.7.7.0 release, the release candidate is the last step before the final version is out.

1.7.7.0 RC1 is available!

This release candidate aims at making sure that all major regressions found during the beta have been fixed, and that no new ones have been spotted. If no new critical or major regression is reported by November 17th, we will make the final version of 1.7.7.0 available.

Please note that it is not currently possible to perform an automatic upgrade from the Beta to the Release Candidate.

Furthermore, it will not be possible to upgrade from this Release Candidate to the final release. If you perform an update of your test store to the RC version, you will need to rollback to your current version before being able to upgrade to the final 1.7.7.0.

Please download, install and test this new version of PrestaShop and give us your feedback as early as possible. The later a problem is identified, the more time it takes to be fixed, and this delays the final release.

If you find regressions compared to the 1.7.6 version, please open an issue and describe it on Github so that it can be reproduced and fixed as soon as possible.

Remember, this release candidate version is pre release software. Do not use it on your production shop!

Notable changes since the Beta 2 release

Order back-office

Back Office:

Front Office:

For developers

Changelog

151 pull requests have been merged since the beta 2 release and 30+ issues have been fixed. Read the Changelog for details. This brings us to more than 1400 merged pull requests for the 1.7.7.0 milestone, it is definitely our biggest yet.

If you are looking for more details about all changes and new features expected in 1.7.7, the 1.7.7 beta version release note is the perfect article for you to read!

Automated Tests

The 1.7.7 version is by far the most tested version ever released by PrestaShop, this ensures its stability and prevents future regressions that could be created by future developments. Here are some numbers about PrestaShop’s automatic tests (and the difference with our previous minor release, 1.7.6):

  • UI tests (sanity + functional): 4307 (whole new campaigns)
  • Integration: 55 tests (+3)
  • Behavior: 518 scenarios, 8838 steps (+297 scenarios, +6133 steps)
  • Unit: 1998 tests (+31)

The UI tests, especially, have been completely redesigned. If you want more information about this please read these two articles:

Known issues

The following issues are not considered edge cases and won’t block the release of a stable version. They will be fixed in the next patch version.

Order back-office

Back Office

Front Office

Download

You can download PrestaShop 1.7.7 RC1 here:

Download PrestaShop 1.7.7 RC1 now!

How to help finish the 1.7.7

Your feedback on this RC is essential, the regressions you find right now are as many bugs less on the final version and less patch versions. It also means fewer problems on your (or your customer’s) online store.

You must:

If everything is working well, feel free to comment on this article to tell us, and share on social networks, we also need this kind of feedback! ;-)

Acknowledgments

A huge thanks to everyone who got involved by reporting, testing and fixing regressions during the first beta phase. Internal and external contributors who submitted pull requests and participated to build this release candidate: PululuK, okom3pom, ks129, Boubker Bribri, Franck Lefèvre, Ibrahima Sow, Jonathan Lelievre, Mathieu Ferment, Matthieu Rolland, Nesrine Abdmouleh, Pablo Borowicz, Pierre Rambaud, Simon Garny, Stephane Decisy, Thomas Baccelli and Valentin Szczupak. Thank you!

External contributors who reported regressions to build a more stable 1.7.7: ks129, okom3pom, MathiasReker and PrestaShop’s maintainer: kpodemski. Thank you!

Like them, please test this release candidate and give us your feedback!

PrestaShop Core Weekly - Week 44 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 26th of October to Sunday 1st of November 2020.

Core Weekly banner

General messages

Dear developers,

The first Release Candidate of PrestaShop 1.7.7.0 has finally been delivered yesterday, after multiple weeks spent carefully strengthening and stabilizing it. For the PrestaShop maintainers team, Hacktoberfest has been all about 1.7.7.0.

This Release Candidate is open for testing for two weeks. On October 18th, if no critical or major regression has been reported, PrestaShop 1.7.7.0 will be delivered as a stable version.

Please help us test this build to make sure this release is a success!

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Back office

  • #21665: Fix PHPDoc AdminController::$explicitSelect. Thank you @comxd
  • #21656: Detect click but not drag and drop on grid, by @NeOMakinG
  • #21554: Fix layout breaking on order when discount name is way too long, by @NeOMakinG

Front office

Tests

Code changes in the ‘1.7.7.x’ branch

Core

Back office

Code changes in modules, themes & tools

The PrestaShop open source project

  • #52: Fix misspelled word prioritize and removed a (probably) useless word. Thank you @awitkutarahil
  • #51: Add missing closing parenthesis and a missing s. Thank you @awitkutarahil

Changes in developer documentation

Faceted search module

Product Comments module

Prestashop UI Kit

Wishlist block module

Docker images

Logo and description changes

Wire payment module

Watermark module

Visits and Visitors statistics module

Visitors origin statistics module

  • #9: Update logo and short description. Thank you @Julievrz

Best sellers module

Search engine keywords statistics module

Supplier list module

  • #6: Update short description and logo. Thank you @Julievrz

Specials product block module

  • #3: Update short description and logo. Thank you @Julievrz

Share Buttons module

Shopping cart module

Shop search statistics module

Search Bar module

Sales and orders statistics module

Feeder module

RSS Feed module

  • #4: Update short description and logo. Thank you @Julievrz

Registered customer information statistics module

Products in the same category module

Check payment module

Pages not found

NVD3 Charts module

Email subscription module

Newsletter statistics module

  • #10: Update short description and logo . Thank you @Julievrz

Email Alerts module

  • #70: Update logo and About section of README. Thank you @Julievrz

Language selector module

Image slider module

Google Sitemap module

Google Analytics module

  • #31: Update short description and logo . Thank you @Julievrz

Order Notifications on the Favicon module

Emails manager module

  • #12: Update short description and logo . Thank you @Julievrz

Data mining for statistics module

  • #19: Update short description and logo . Thank you @Julievrz
  • #38: Update short description and logo . Thank you @Julievrz

Dashboard Products module

  • #31: Update short description and logo . Thank you @Julievrz

Dashboard Goals module

  • #25: Update short description and logo . Thank you @Julievrz

Dashboard Activity module

Customer reassurance block module


Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @Julievrz, @dependabot[bot], @PululuK, @comxd, @NeOMakinG, @nesrineabdmouleh, @boubkerbribri, @matks, @atomiix, @jolelievre, @awitkutarahil, @gnovaro, @SimonGrn, @pablopolyte, @Quetzacoalt91, @Oksydan!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!


Do you speak PrestaShop? – October 2020 edition

$
0
0

Contributing to PrestaShop is not only about the code, it’s also about taking part in the PrestaShop translation project! This report will tell you how the translations of the software evolved in October.

Crowdin Monthly banner

Project news

The last 1.7.7 translations are available!

The catalog of new translations has recently been added to Crowdin. This means that the completion rate for all projects has slightly decreased. Some projects that used to be 100% translated and validated are no longer complete.

Translators, proofreaders… your project needs you! Feel free to take a look at the new translations and help it reach 100%!

A new project has been opened: Sorani (Kurdish)

A new language project has been opened on Crowdin following the request of Fatah Barzangy… It is the Sorani (Kurdish) project. Do not hesitate to get involved! :blush:

:two_hearts: Special thanks to newcomers

Many people subscribe to the project(s) of their choice each month, but not so many start translating straight away. For that reason, we would like to thank the ones who rushed into the effort immediately!

So lots of love to the dedicated: okom3pom, Kian Yuan, dev.niebla, bbbenjie, René Paolozzi, Athiwat Klauythong, Axel Rousseau, danielshapiro9.

See you soon on Crowdin… and in PrestaShop. :stuck_out_tongue_winking_eye:

A few stats

  • 48 members were active on the project this month.
  • A total of 34,936 words have been translated and 24,432 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 PrestaShop can’t thank you enough for your dedication! Here are the 10 most active translators and proofreaders for October 2020.

Top 10 translators in October:

 TranslatorLanguage# Words
1.Girdman.com (anargaragezov)Azerbaijani8,067
2.Athiwat Klauythong (ahteewat123)Thai2,108
3.mirmalEsperanto1,788
4.webdvl (megashopba)Czech & Slovak1,869
5.Daniele1970Esperanto1,454
6.Lauri Lepik (laurilllepik)Estonian1,440
7.Enzo Ferrara (ferribbotte)Italian944
8.Rodrigo Laurindo (rblaurin)Portuguese, Brazilian941
9.GoedkoopsteverfDutch941
10.David Gonzalez (davidglezz)Spanish862

Top 10 proofreaders in October:

 ProofreaderLanguage# Words
1.Girdman.com (anargaragezov)Azerbaijani8,378
2.Daniele1970Esperanto & Italian2,873
3.webdvl (megashopba)Czech & Slovak2,486
4.Marcin Orzechowski (Martinovy)Polish1,180
5.Enzo Ferrara (ferribbotte)Italian977
6.Rodrigo Laurindo (rblaurin)Portuguese, Brazilian941
7.Patrik Lindblom (extendus)Swedish941
8.Cha (cafetango)Chinese Traditional635
9.David Gonzalez (davidglezz)Spanish595
10.Jesús Ruiz (jruiz)Spanish346

Congrats, and welcome to our new top contributors! :clap:

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 October 2020, PrestaShop 1.7.7 was fully available (= 100% translated and validated) in 6 languages:

CzechEnglishSpanishPortuguese, Brazil
SlovakSwedish  

This is less than in September, but this is not surprising as new translations have been added this month.

Languages with the best evolution

In comparison with September 2020, the following languages had the best progress thanks to the translation community:

  • Azerbaijani (+9% to reach 37% translated)
  • French, Belgium (+8% to reach 8% translated)
  • Esperanto (+6% to reach 19% approved)

Best translation progress for October 2020

A huge thank you 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 other proofreaders! Thanks to 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 to keep a high level of validated strings vs. translated strings, to make sure everyone benefits from the latest translations!

At the end of October 2020, some languages would still benefit from some proofreading:

  • Spanish, Argentina (98% translated vs 13% validated).
  • Esperanto (59% translated vs 19% validated). (But we can observe an increase of 6% since last month! Congratulations! :fire:)
  • Spanish, Venezuela (51% translated vs 11% validated).
  • Galician (98% translated vs 58% validated).
  • Spanish, Mexico (91% translated vs 56% validated).

I would like to take this opportunity to inform you of jmcoget’s request regarding the French (Belgium) project.

He is looking for volunteers to discuss and help him on the project, and in particular proofreaders to validate the strings. If you are Belgian, and you want to join him, do not hesitate to join the French, Belgium project on Crowdin!

Languages that need proofreading

If you wish to help to proofread what has been translated, please contact PrestaShop with the language you’d like to proofread: just send an email to translation@prestashop.com. Your help is needed!

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

If you want to gather your fellow translators to work towards a better harmonization, start a glossary, or anything else, do let me know: I’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! :raising_hand:

PrestaShop Core Weekly - Week 45 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 2nd to Sunday 8th of November 2020.

Core Weekly banner

General messages

Dear developers,

Have you tested PrestaShop 1.7.7.0 Release Candidate 1?

If you currently have little time and you feel you cannot help us making sure this Release Candidate is the right one, know that every effort counts.

  • If you are a developer who builds modules or themes, you can simply run them on this version
  • If you are a merchant, you can simply open the new Back Office Order pages and see if it looks alright to you
  • If you are a developer who builds and sells shops, you can simply install this version and start customizing it as you usually do

As written by Eric S. Raymond, “given enough eyeballs, all bugs are shallow” (Linus’s law). So the more people can test this Release Candidate, the better it will be!

And if you find out that everything is working well, feel free to tell the world! Comment on this article, share on social networks… we also need this kind of feedback! 😉

Reminder: on October 18th, if no critical or major regression has been reported, PrestaShop 1.7.7.0 will be delivered as a stable version.

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

Back office

Front office

Tests

Code changes in the ‘1.7.7.x’ branch

Back office

  • #21666: Recompute price tax excluded only when the price is different from catalog, by @jolelievre
  • #21557: Fix product pagination when adding a product in an empty order, by @atomiix
  • #21526: Improved Error message in New Order Page when adding a minimal product, by @Progi1984

Code changes in modules, themes & tools

Auto Upgrade module

Prestashop UI Kit

QA nightly results

  • #43: Adding start_date and end_date parameters to the graph so we can choose the interval, by @SimonGrn

Customer reassurance block module

  • #61: Upgrade PHP CS Fixer to v2.16.4 to comply with Composer v2, by @matks
  • #55: Fix get mime type, by @Progi1984

Faceted search module

Changes in developer documentation

New Products module

  • #7: Fix composer.json license, by @matks

Issues Bot

Docker images

PrestaShop Specifications

The PrestaShop open source project

Wishlist block module

  • #89: Get cover image for specific combination. Thank you @kpodemski

Email Alerts module

  • #65: Fix cast error when removing an Alert. Thank you @hherreros93
  • #57: Added new translator for email subjects. Thank you @L3RAZ

Visits and Visitors statistics module

Logo and description changes

Auto Upgrade module

New Products module

  • #6: Update logo and short description. Thank you @Julievrz

Product details statistics module

Prestafraud against fraudulent payments module

Best manufacturers statistics module

  • #9: Update short description and logo. Thank you @Julievrz

Simple HTML table display module

PrestaShop Cleaner module

Stats Dashboard module

Social Follow module

OnBoarding module

  • #89: Update short description and title. Thank you @Julievrz

Visitors online statistics module

Viewed products module

Front office tracking module

Product tooltips module


Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @Quetzacoalt91, @boubkerbribri, @NeOMakinG, @stijnh92, @SimonGrn, @JevgenijVisockij, @matks, @dependabot[bot], @nesrineabdmouleh, @jolelievre, @itsvahid, @PululuK, @Julievrz, @Progi1984, @ksaandev, @matthieu-rolland, @marionf, @LouiseBonnard, @jf-viguier, @MatShir, @atomiix, @kpodemski, @unlocomqx, @zuk3975, @okom3pom, @Matt75, @Seleda, @hherreros93, @L3RAZ, @soulardromain!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

Release Of PrestaShop 1.7.6.9

$
0
0

The ongoing work on security for PrestaShop software continues. We have identified and fixed a new security issue, it has been decided to deliver a new maintenance release for 1.7.6.X branch.

1.7.6.9 is available!

Reminder: the 1-Click Upgrade module’s latest version is v4.10.1, don’t forget to upgrade it.

Security fixes

1 security fix has been included in this patch version:

More information about why it is important to update:

Download PrestaShop 1.7.6.9 now!

Since version 1.7.6.9 is a “patch” update to version 1.7.6.8, upgrading from any 1.7.6 version will be easy: features will work better, and modules & themes which worked fine on 1.7.6.x will work just as well with 1.7.6.9. Upgrades from a standard 1.7.x version should work just as well.

PrestaShop Core Weekly - Week 46 of 2020

$
0
0

This edition of the Core Weekly report highlights changes in PrestaShop’s core codebase from Monday 9th to Sunday 15th of November 2020.

Core Weekly banner

General messages

Dear Developers,

This week is filled with lot of interesting events!

First, PrestaShop 1.7.6.9 has been released. don’t forget to update as this patch version fixes one important security issue.

The maintainer team also released Product Comments module security release v4.2.0 which fixes another security issue.

Second, we are October 17th, which means that tomorrow if no critical or major regression has been reported, PrestaShop 1.7.7.0 will be delivered as a stable version. Now is the very last moment to test PrestaShop 1.7.7.0 Release Candidate 1!

Finally, the huge work on PrestaShop UI Kit by @NeOMakinG has finally been merged with the release of PrestaShop UI Kit v1.2.0.

Releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘develop’ branch

Core

  • #21896: Fix dependency which is targeting the v1.3.0 instead of the 1.3 branch, by @PierreRambaud
  • #21874: Fix TCPD::Output() method name call. Thank you @comxd
  • #21616: Do not use the cache when checking if data exists in the database (Part 1). Thank you @PululuK

Back office

Front office

  • #21814: FO: fix wrong redirection after address edition in checkout process, by @matthieu-rolland
  • #21783: Get page title respecting dedicated meta title and combination information. Thank you @kpodemski
  • #21732: Fixed displayPackPrice not defined to true due to a type comparision. Thank you @Prestaworks
  • #21578: Added a new hook call “displayProductPriceBlock” with type “custom_price”. Thank you @zapalm
  • #20565: Filter variations by qty at FO. Thank you @Guisardo

Web services

Tests

Code changes in the ‘1.7.7.x’ branch

Back office

  • #21853: Add missing use in CancelOrderProductHandler, by @matks
  • #21830: Correctly generate cart error messages, by @jolelievre
  • #21816: Remove useless logic Product customization images in Order Page and handle exotic chars in name, by @matks
  • #21555: Fixed increment button when adding a product out of stock and with allow order, by @Progi1984

Code changes in modules, themes & tools

Best customers statistics module

Search Bar module

Changes in developer documentation

Customer reassurance block module

TranslationTools Bundle

Faceted search module

Gamification module

  • #77: Updated dependency friendsofphp/php-cs-fixer, by @Progi1984
  • #76: Update logo and About section of README. Thank you @Julievrz

Prestashop UI Kit

PrestaShop Specifications

blockmyaccountfooter

  • #2: Update short description and logo. Thank you @Julievrz

Google Analytics module


Thank you to the contributors whose pull requests were merged since the last Core Weekly Report: @boubkerbribri, @Progi1984, @PululuK, @dependabot[bot], @PierreRambaud, @eternoendless, @JevgenijVisockij, @comxd, @zuk3975, @nesrineabdmouleh, @NeOMakinG, @matks, @jolelievre, @micka-fdz, @matthieu-rolland, @kpodemski, @Prestaworks, @MatShir, @atomiix, @Julievrz, @Dakror, @gnovaro, @zapalm, @SD1982, @davidglezz, @prestaforum, @Guisardo!

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 issues and comments on GitHub!

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 GitHub to report an issue. Thank you!

Happy contributin’ everyone!

Release Of Module ProductComments 4.2.0

$
0
0

The ongoing work on security for PrestaShop software continues. We have identified and fixed a new security issue on module Product Comments.

This issue is fixed in latest version 4.2.0.

Security fix

One security fix has been included in this minor version:

More information about why it is important to update:

Other changes

The version v4.2.0 of the module also brings some new improvements, you can read the full Changelog here.

How to upgrade

You should be able to download the latest version from your Back Office.

Viewing all 939 articles
Browse latest View live