Skip to content

<div style="display: none;" hidden="true" aria-hidden="true">Are you an LLM? You can read better optimized documentation at /changelog/Changelog.4.57.md for this page in Markdown format</div>

Home | Changelog

Version 4

version 4.57

  • [4.57.14] feat: Add option to override functions on orders for posting and selecting columns so that we can add more data when posting and selecting orders
  • [4.57.13] feat(gift-cards): Add inputs for recipient's name, surname, and personal message
  • [4.57.13] fix(ACS Smart Points): invalid CY records in ACS smaet points where city is null
  • [4.57.13] chore: Advuploader::getFile typehint argument and return type public function getFile(string $postFileKey): string chore because all usages pass string
  • [4.57.13] fix: Blog_category_admin::edit setting images while having to check if we need to set them in edit array
  • [4.57.13] chore: Last_seen_products_model::addLastSeenProducts replace array_search and array_push with in array and simple array adding item
  • [4.57.13] fix(php8.1): fix occurrences of strlen where argument could be of non string type
  • [4.57.13] chore: cleanup checks for strlen when not needed
  • [4.57.12] fix: Fix the Pireus php8 incompatibility
  • [4.57.12] fix(blog_admin): handle non-existing blog article case when editing article
  • [4.57.12] fix(xml): strlen expects string in xml controllers
  • [4.57.12] fix(AdvSkroutzXml): change the availability if product has active negative_stock
  • [4.57.11] fix:(jobs): CreateJobSchedule::saveData save grace time and retries
  • [4.57.10] chore(jobs): add keepLogPeriod to 1 day for giftCards queue
  • [4.57.10] fix(job manager): set failed status when a job exceeds retry times
  • [4.57.10] fix: boxnow and apifon authenticate only when a request needs it
  • [4.57.10] feat(product_categories): Introducing blog articles into product category pages
  • [4.57.10] fix(blog): patched ld_json condition check for rendering article graph object (is_blog -> isBlog)
  • [4.57.10] fix(blog): show 404 page if visiting blog search without keyword
  • [4.57.10] fix: Fix the return of the recursiveRecordsTree in blogs categories to return array of objects
  • [4.57.10] fix: Fix the query for get the customer orders
  • [4.57.9] fix(transporters): added missing transporter DAILYCOURIER AND TAXYDEMA on close_pending_vouchers
  • [4.57.9] fix(transporters): updated check on create voucher response on transporter taxydema and dailycourier
  • [4.57.9] fix(jobs): AdvJobManager should get count for not started jobs to check if it needs to run scheduler
  • [4.57.9] chore: ClearJobSchedule set default keepLogPeriod to 3 days
  • [4.57.9] chore: update composer packages to latest minor
  • [4.57.9] fix(adv_mailer): show smartPointData on order_created (Not having that data for card payments)
  • [4.57.9] feat: On getCustomerOrders get the total_qty of products on basket (including gifts) for each order
  • [4.57.8] feat: introduced blog hits
  • [4.57.8] fix(language): Update eshop.front.mail.view.website greek lang because it was similar to the english version
  • [4.57.7] fix(jobs): AdvCreateJobSchedule sets arguments if job to schedule implements JobCommandExperimental
  • [4.57.7] chore: AdvJob better logging in case of class failing in __construct
  • [4.57.7] fix: job listing hover text not readable
  • [4.57.7] fix(acs): simplified local vars and conditionals, set type to class vars, log errors in applicable calls
  • [4.57.7] feat: Add in the admin view of panel link in the front page of lines
  • [4.57.6] fix(AdvCartResource.php): Misspell return type correction
  • [4.57.5] feat: allow CartResource and CartResource to be extended
  • [4.57.5] fix(Subcontent_admin): fix the subcontent langs for create and update
  • [4.57.5] chore(order_created): Show selected smart point on checkout email for default template
  • [4.57.4] fix(product-categories-admin): added missing manage category tags on create category
  • [4.57.4] feat(moosend): Moosend newsletter registration implementation
  • [4.57.4] feat(search): add search debug functionality
  • [4.57.4] refactor(search): enhance setSolrGlobalParams method customization
  • [4.57.3] fix(minicart): Replace a with button tag in rem-minicart-prod because when the button was clicked, viewport was going on top of page
  • [4.57.3] Refactor: Delivery warning messages now dynamically reflect order delivery estimates based on real-time product stock. When product stock is depleted (0 or negative), delay messages are displayed; otherwise, normal delivery estimates are shown.
  • [4.57.3] feat: Pretty print the output of xml feeds for the catalogs
  • [4.57.3] feat: In case of order is not pending return error if vivawallet change the status of order
  • [4.57.3] fix(php8): warning when looping through internal['allProductsOfVendor'] in Vendors::vendors
  • [4.57.3] fix: vendors::baseVendor routing - check if param is not an actual category and show 404
  • [4.57.3] fix: job manager routing
  • [4.57.3] chore: application jobs have already announced implement of JobCommand in base classes
  • [4.57.2] fix: Call the parent constructor in the api transporters
  • [4.57.2] feat: Option to select and filter group tags in product categories
  • [4.57.2] feat: createJobSchedule job can set job arguments using 'options' key in command config for experimental jobs
  • [4.57.1] feat(jobs): JobCommandExperimental accepting array for arguments
  • [4.57.1] feat(jobs): a job can be added in the queue setting grace time and retries
  • [4.57.1] feat(JsCapabilities): enhance script tag rendering by adding the ability to configure script's async, defer, crossorigin, integrity, referrerpolicy, type and nomodule attributes
  • [4.57.1] fix: Fix the case of not author in blog articles
  • [4.57.1] fix: Fix smartPointsInitialize to load smartpoints only for active transporters
  • [4.57.1] fix: Change in the db the length of the color in the shop_product_categories
  • [4.57.1] feat(blog_categories_admin): Changed blog categories index to group categories by parent_id
  • [4.57.1] feat(blog_categories): Refactored blog categories to use tree structure on front
  • [4.57.1] feat(blog_categories_admin): Added option for admin to create blog category tree by assigning parent_id to category
  • [4.57.1] fix: Product_categories::index Corrected pagination functionality when product tag filters were active.
  • [4.57.1] fix: Product_tags_model::fixAdminTagsSearch to take into account other conditions apart from tagGroups
  • [4.57.1] fix(Adv_orders_admin): Fix customer data handling for empty customer_id for php 8.1 compatibility
  • [4.57.1] fix(adv_blog_category_model): combo object data replaced blog_category_id with id
  • [4.57.1] fix(product-clone): check if product meta exists in results
  • [4.57.0] fix: product model update_record allow not touching master table, fix on updateMuiProductRecord not taking into account id
  • [4.57.0] fix(Adv_orders_admin): Corrected order id retrieval for close pending jobs
  • [4.57.0] refactor(AdvIqviaUpload): added generated line_item_id in csv
  • [4.57.0] feat(product-clone): implement product clone modal in products list
  • [4.57.0] ci(cart): In check of the bots use the Matomo library instead of ci user agent
  • [4.57.0] feat(blog-search): Add a search page for the blog articles
  • [4.57.0] fix(text-helper): Fix the characters in greeklish ευ to eu
  • [4.57.0] feat(daily-courier): save and utilize bearer token from database
  • [4.57.0] feat(transporters-settings): change reg_value field type to TEXT
  • [4.57.0] feat: Update cookies for Google consent v2 (added ad_user_data and ad_personalization)

Notes

  • [4.57.14] Check for overrides:

    • Order::preview On $orderData = array_merge($orderData,$this->input->post(...)) include the $this->previewExtraPostData() in the array merge
    • Order_model::getRecordsCustomerBaseSelect The select has been moved to a functions getRecordsCustomerBaseSelect and the function getRecordsCustomerBaseSelectExport ,check for overrides and move your select to those functions
    • Order_model::create_order Add the $this->createOrderExtraData($orderData) in the array of $order = array_merge($order, $this->setUpAdminOrderDataSmsValid($orderData),..)
  • [4.57.13] Build requirements:

    bash
    npm ci && npm run production
    composer i
    php cli.php patch/addGiftCardOrderCustomerData
  • [4.57.13] Check for overrides:

    • Blog_category_admin::edit
    • Last_seen_products_model::addLastSeenProducts
    • Gift_card_page::createPendingGiftCard
  • [4.57.13] Check for overrides (strlen checks - diff quick view in bottom of document):

    • Blog_admin::edit
    • Blog_author_admin::edit
    • Blog_category_admin::edit
    • Blog_author_model::getAuthorRecord
    • Blog_category_model::getCategoryRecord
    • Blog_model::{getBlogRecord|getBlogDefault}
    • Blog_tags_model::getTagRecord
    • Categories_model::create_slug
    • Front_c::languageMuiUris
    • Gifts_admin::index
    • Orders_admin::index
    • Product_categories::set_filter
    • Product_categories_admin::search
    • Products::index
    • Skroutz_orders_admin::index
    • Vendors::vendors /* Breadcrumbs */
    • Last_seen_products_model::getLastSeenProducts
    • Product_category_model
      • create_slug
      • get_children_with_anchors_unarrayed
      • get_published_children_with_anchors
      • get_children_with_anchors
      • get_record
      • get_details
    • Event_categories_model::getRecord
    • Wellcomm::{parseWellcommItem|splitProductWithColors}
    • Maps_model::{getAdminRecord|getPoint}
    • Keywords_model::get_default
    • Metatags_model::get_default
    • Sliders_admin::edit
    • views affected
      • application/views/default/layouts/library/product_page/product.php
      • application/views/main/layouts/customer/order_check.php
      • application/views/main/layouts/product_page/product.php
  • [4.57.12] Check in application xmls for strlen($product->skroutz_name) ? (string)$product->skroutz_name : (string)$product->name and replace with $product->skroutz_name ?: $product->name

  • [4.57.12] Check for overrides:

    • Skroutz:parseSkroutzItem
    • Skroutz:splitProductWithColors
  • [4.57.11] Check for override in CreateJobSchedule::saveData

  • [4.57.10] Build requirements:

    bash
    composer i
    php cli.php patch/createProductCategoryBlogLp
    npm ci &&  npm run production && npm run admin-production
  • [4.57.10] Check for overrides:

    • Blog_category_model:recursiveRecordsTree
    • Adv_blog (check for is_blog and replace with isBlog) as well as in any other place that might use the same condition
    • Order_model:getCustomerOrders In Dioptra remove the over in other customers check the over
    • Product_categories:index include renderCategoryBlogArticles
    • Product_categories:catTopPage include renderCategoryBlogArticles
    • Settings:only_advisable
    • Settings:onlyAdvisableValidation
    • Product_reviews_model:getCustomerReviews select more data
    • Customer:reviews add items for parsing
  • [4.57.9] Need to change the APP_PHP_EXECUTABLE_PATH in .env (check the .env.example). From now on we use PHP 8.1

  • [4.57.9] Check for overrides:

    • Orders_admin::close_pending_jobs
    • setPendingWithVoucher::createVoucherTaxydema
    • setPendingWithVoucher::createVoucherDailyCourier
    • Order_model::getCustomerOrders
    • Job_manager::initializeJobs
    • ClearJobSchedule::execute
  • [4.57.9]

    bash
    composer i
  • [4.57.8] Check for overrides:

    • Blog::blogArticle added updateArticleHits function
  • [4.57.8]

    bash
    php cli.php patch/blogHits
  • [4.57.7] Build requirements:

    bash
    npm ci && npm run admin-production
  • [4.57.5] Build requirements:

    bash
    composer i
  • [4.57.4] Check for overrides:

    • Customer::reportLoginEvent
    • Order::previewOrderMiscData
    • Order::preview
    • Customer_model::customer_exit
  • [4.57.4] Build requirements:

    bash
    npm ci && npm run production
    composer i
  • [4.57.4] Needs composer i

  • [4.57.2] Build requirements:

    bash
    npm ci && npm run production
  • [4.57.3] Check for overrides:

    • Job_manager::executeJob
    • Vendors::baseVendor
    • Vendors::vendors
    • Order::checkout
    • Order::__recheck_order
    • Order::preview
    • Order::edit
    • Order::repeat
    • Order::add
    • Order_model::create_order
    • Order_model::recheck_cart
    • Order_model::create_order_admin
    • Orders_admin::add
    • Orders_admin::repeat
    • Orders_admin::edit
    • Order_model::recheck_cart
  • [4.57.2] Check for overrides:

    • product_categories_admin::add added tags_combo to render and function manageCategoryTags to handle tags
    • product_categories_admin::edit added tags_combo to render and function manageCategoryTags to handle tags
    • product_categories::buildTagsSideMenu added tagGroups to render and filter groups
  • [4.57.2] Build requirements:

    bash
    php cli.php patch/createTagsCategoryLp
  • [4.57.1] Experimental jobs are being called through Job::job instead of Job::index which populates command arguments from db

  • [4.57.1] Specific client notes:

    • In Dioptra Client do not run the php cli.php patch/menuColorField patch
    • In Dioptra Client the ld_json.php and in master the over is the same
  • [4.57.1] Build requirements:

    bash
    php cli.php patch/jobCommands
    php cli.php patch/blogTree
    php cli.php patch/menuColorField
  • [4.57.1] Check for overrides:

    • Product_categories::index Remove overrides from Clients : Dioptra, Liolios
    • Blog_category_model::getCategoriesList added conditions as parameter, changed select to get all data
    • Blog_category_model::categoriesCombo added parameter to getCategoriesList
    • Blog_category_model::getCategoriesFront Refactored to use tree structure, also check methods accessing getCategoriesFront (this might hurt)
    • Blog_category_admin::blogCategoryAddRender dropped function as it was loading lang lines already loaded
    • Blog_category_admin::blogCategoryEditRender dropped function as it was loading lang lines already loaded
    • Blog_category_admin::add code cleanup, removed dropped blogCategoryAddRender, moved form validation to separate function, added staff on render
    • Blog_category_admin::edit code cleanup, removed dropped blogCategoryEditRender, moved form validation to separate function, added staff on render
    • Blog_category_admin::delete code cleanup
    • Blog_category_admin::index Refactored to group categories by parent_id
    • Order:smartPointsInitialize changed to load smartpoints only for active transporters
  • [4.57.0] Check for overrides:

    • Product_tags_model::fixAdminTagsSearch
    • Product_model::update_record
    • Product_model::updateMuiProductRecord
    • IqviaUpload::dbData
    • IqviaUpload::csvDataLine
    • Iqvia_model::orders
    • Orders_admin::close_pending_jobs
    • Orders_admin::add
  • [4.57.0] To enable product clone modal on products list, set enableModalCloneProduct to true on the config/app.php

  • [4.57.0] Build requirements:

    bash
    php cli.php patch/updateTransporterSettingsValueType
    php cli.php patch/blogFulltextIndex
    npm run admin-production
    npm run production

4.57.x strlen commit diff quick view

application/views/default/layouts/library/product_page/product.php
- if( strlen(trim($productBadgesText[$productData->product_img_type])) > 0 ): ?>
+ <?php if (!empty($productBadgesText[$productData->product_img_type])) : ?>

application/views/main/layouts/customer/order_check.php
- <?php if ( isset($errorMsgOrderCheck) && strlen( trim( $errorMsgOrderCheck ) ) > 0 ): ?>
+ <?php if (!empty($errorMsgOrderCheck)) : ?>

application/views/main/layouts/product_page/product.php
- <?php if( strlen(trim($badgeData['text'])) > 0 ): ?>
+ <?php if (!empty($badgeData['text'])) : ?>

Blog_admin::edit
- if (strlen($imageFile) > 0) {
+ if ($imageFile) {

Blog_author_admin::edit
- if (strlen($imageFile) > 0) {
+ if ($imageFile) {

Blog_category_admin::edit
- if (strlen($imageFile) > 0) {
+ if ($imageFile) {

- if (strlen($smallBannerFile) > 0) {
+ if ($smallBannerFile) {

- if (strlen($promoBannerFile) > 0) {
+ if ($promoBannerFile) {

Blog_author_model::getAuthorRecord
Blog_category_model::getCategoryRecord
Blog_model::getBlogRecord
Blog_model::getBlogDefault
Blog_tags_model::getTagRecord
Categories_model::create_slug
Front_c::languageMuiUris
Gifts_admin::index

Orders_admin::index
- if (strlen(trim($this->input->post('search_for'))) > 0) {
+ if (!empty(trim($this->input->post('search_for') ?? ''))) {

- if (strlen($this->input->post('date_start')) > 0) {
+ if ($this->input->post('date_start')) {

- if (strlen($this->input->post('date_end')) > 0) {
+ if ($this->input->post('date_end')) {

Orders_admin::view
- if (strlen($this->input->post('gen_tax_code')) > 0) {
+ if ($this->input->post('gen_tax_code')) {

Product_categories::set_filter

Product_categories_admin::search
- $keyword = $this->input->post('keyword');
- if (!is_null($keyword) && strlen(trim($keyword)) > 2) {
+ $keyword = $this->input->post('keyword') ?? '';
+ if (strlen(trim($keyword)) > 2) {

Products::index
- if (strlen((string)$topCatData['master']->menu_color) > 0) {
+ if (!empty($topCatData['master']->menu_color)) {

Skroutz_orders_admin::index
- if (strlen(trim($this->input->post('search_for'))) > 0) {
+ if (!empty(trim($this->input->post('search_for') ?? ''))) {

Vendors::vendors /* Breadcrumbs */

Last_seen_products_model::addLastSeenProducts
- if (strlen($ids  > 0)) {
+ if ($ids) {

Last_seen_products_model::getLastSeenProducts
- if (strlen((string)$ids) === 0) {
+ if (empty($ids)) {

Product_category_model::create_slug
- $slug .= (strlen($slug) > 0) ? '/' . $name : $name;
+ $slug .= $slug ? '/' . $name : $name;

Product_category_model::get_children_with_anchors_unarrayed
- if (!is_null($param) && strlen($param) > 0) {
+ if ($param) {

Product_category_model::get_published_children_with_anchors
- if (!is_null($param) && strlen($param) > 0) {
+ if ($param) {

Product_category_model::get_children_with_anchors
- if (!is_null($param) && strlen($param) > 0) {
+ if ($param) {

Product_category_model::get_record
- if (strlen($lang) > 0) {
+ if ($lang) {

Product_category_model::get_details
- if (strlen($id) > 0) {
+ if ($id) {

- if (strlen($lang) > 0) {
+ if ($lang) {

Event_categories_model::getRecord
- if (strlen($lang) > 0) {
+ if ($lang) {

WellcommXml::parseWellcommItem
if (!array_key_exists('main', $firstCodeImages)) {
-     return $item = [];
+     return [];
  }

- 'name' => strlen($product->name) ? (string)$product->name : (string)$product->name,
- 'EAN' => $product->barcode
-     ? $product->barcode
-     : $this->config->item('site_name') . ' - ' . (string)$product->{$this->dbIdKey},
+ 'name' => $product->name ?? '',
+ 'EAN' => $product->barcode ?: $this->config->item('site_name') . ' - ' . $product->{$this->dbIdKey},

WellcommXml::splitProductWithColors
- $name = strlen($product->name) ? (string)$product->name : (string)$product->name;
- $name .= " [{$colorCaption}]";
+ $name = $product->name;
+ $name .= " [$colorCaption]";

Maps_model::getAdminRecord
- if (strlen($lang) > 0) {
+ if ($lang) {

Maps_model::getPoint
- if (strlen($lang) > 0) {
+ if ($lang) {

Keywords_model::get_default
- if (strlen($lang) > 0) {
+ if ($lang) {

Metatags_model::get_default
- if (strlen($lang) > 0) {
+ if ($lang) {

Sliders_admin::edit
- if (!strlen($id) > 0) {
-     return $this->error_404();
+ if (!$id) {
+     $this->error_404();
+     return;