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.81.md for this page in Markdown format</div>

Home | Changelog

Version 4

version 4.81

  • [4.81.4] fix(AdvIqviaUpload): string replace for character | of item's name. Iqvia use it as delimeter
  • [4.81.4] fix(Settings): check if logo exists and assign $logoImage
    • In case that logo exists, method updateLogo is running and sets $this->render['upload_errors'] so anything inside if statement wil not be executed
  • [4.81.4] fix(product_reviews_admin): use correct product_id on select from shop_product_mui instead of id
  • [4.81.4] fix: Remove the extra joyn with the products feed table
  • [4.81.4] fix: Fix the query that counts the items of products in dashbord products reporting
  • [4.81.4] task: removed public/logs and logs folders
  • [4.81.4] task(logs): move Europharmacy, Jcc, klarna and shopflix logs to application/logs
  • [4.81.4] chore: remove unused Advisable\Uri package
  • [4.81.4] fix(bundles): rounded final price in the bundle pricing
  • [4.81.4] fix: Migration warnings for the defined constants
  • [4.81.4] fix: Change the check if the script has errors and the condition to get the size of cache folder
  • [4.81.4] task: deleted spark module fire_log. deleted Advisable::log method that called fire_log module
  • [4.81.4] fix: declare default zero value on $discountPercent when query fails, sql MAX function sends a row discount_persent=null and passes on if statement
  • [4.81.4] fix(skroutzOrders): save collection_point_address when available on skroutz order creation and update
  • [4.81.4] fix(Product_categories_admin): add missing product_lists variable on render in case of category_product_lists is disabled
  • [4.81.4] chore: update composer and node components (excluding apexcharts)
  • [4.81.4] fix(initial.sql): update tmp_shop_order_basket sql creation when initializing a new database to match with Adv_products_in_cart_model::createTable method because product_id column was missing
  • [4.81.4] feat: Introduced Custom Meta tags functionality
  • moved Seo from settings to Marketing and made it a parent category of categories Default Meta Tags and Custom Meta tags
  • users can set custom meta tags on unique urls.
  • [4.81.3] fix: asset.url in app context should not return empty string or null
  • [4.81.3] feat(jobs): add retry_count to view in jobs listing
  • [4.81.3] feat(cache):
    • Enable the cache script in configuration
    • Add the delete of cache script to server
    • Allow in the gitignore the delete.sh file
    • Fix the condition to choose the delete script
  • [4.81.3] fix(admin/products/update): change key passed on captions array to correct $l_abbr is used on foreach
  • [4.81.2] fix(jobs): AdvJobsModel::update
  • [4.81.1] fix(fonts): set LineIcons v2 instead of v5 (reverts commit 5dd25d87)
  • [4.81.0] feat: Add a new gift rule that returns only one gift on vendor
  • [4.81.0] feat: Jobs update
    • redesigned jobs admin listing to a vue component
    • jobs admin can now set jobs with options
    • job arguments in listing are pretty printed and hidden with collapse to avoid long table width
    • jobs config changed from having commands as key to allow multiple usage of same command with different options or schedules that cannot be expressed with one cron expression
    • jobs config has commandOptions key which holds an array of key command class name and value from class static function getOptions.
    • JobCommand interface added static getOptions to get an array with command options. The format is key for the option holding an array with keys type (int, boolean, etc) and boolean optional key. Usable only for advisable user
    • advisable user admin dropdown menu now has jobs_admin link
    • reconnect db for job processes that may exceed wait_time for mysql connection
    • add error log message when a job fails from job queue manager
    • AdvBlockBuilderController render methods should call defaultProductParseWithProductCodes
  • [4.81.0] fix(adv_product_tags_admin): check if tagGroupsList is empty before iterating
  • [4.81.0] fix: remove patch for dhl's shop_product hs code field
  • [4.81.0] feat: implemented the ability to reward customers on approved product reviews
  • [4.81.0] feat(builder/componentToolbar): Extended grape js component toolbar by adding new custom buttons :
  • New toolbar buttons:
    • change-bg-color: opens a box where the user can change the background color and opacity of the div.
    • padding-settings: opens a box where the user can change the padding of the div either the horizontal/vertical or each side individually.
    • margin-settings: opens a box where the user can change the margin of the div either the horizontal/vertical or each side individually.
    • wrap-with-link: changes div to a tag and updates the href, title and target attributes.
    • copy-style: copies the selected components styles and applies to the next component clicked also alters cursor to signify when it's ready to paste styles.
  • [4.81.0] feat: implementation of MarketData integration ability on advisable settings
  • [4.81.0] chore: update semver composer packages to latest minor version and grapejs in package.json
  • [4.81.0] feature: move logo from main.php config item path_logo to registry
  • [4.81.0] fix: ClearJobSchedule should only delete completed (success and fail) tasks
  • [4.81.0] feat: implemented google product review xml integration.
  • [4.81.0] feat(builder/locales): Extended grape js locales with our own custom locales and added en as fallback lang.
  • [4.81.0] feat(builder/rte): introduced new custom rte buttons and functions extending the grape js default text toolbar.
  • [4.81.0] refactor(builder): modularized and optimized GrapesJS editor initialization
  • Modularized the GrapesJS editor setup into separate files for better maintainability:
    • editor.js: Handles editor initialization.
    • plugins.js: Manages plugin configurations.
    • commands.js: Contains custom commands like store-data and modal-title.
    • rte.js: Implements Rich Text Editor (RTE) customizations (font size, font family, text color).
    • assets.js: Configures asset management.
    • buttons.js: Adds custom buttons to the editor's panels.
    • t.js:Dynamically connects the GrapesJS editor instance to a reusable t() function for fetching localized strings with a fallback to the key.
    • i18n.js: Config for i18n in GrapesJS editor.
    • locales: locals extending GpapeJs editor langs.
    • blocks/: Moved all existing blocks to this directory.
  • [4.81.0] perf(checkout): Optimized coupon input field There have been two areas of improvement:
    1. In the backend, the endpoint that renders the coupon discount has been extracted to a separate controller
    2. In frontend, api utility method has been refactored and axios usage has been replaced with Fetch API. Additionally, an abort controller was introduced that is handled by the calling component in order to reject previous requests left in pending/processing state, so that only the response of the latest request is taken into account.
  • [4.81.0] feat: social links moved to registry. Replaced all occurrences of config social.pages.* with registry->value('SOCIAL_LINKS', '&lt;social key>'). Added socialLinks in theme_helper to get social links that have value
  • [4.81.0] task: update lineicons from 2.0 to 5.0
  • [4.81.0] feat: Maintenance and coming soon pages. Maintenance mode is set by ecommercen-saas and site mode is set from admin settings -> only for advisable. Setting anything other than Online sets noindex,nofollow in main template. Also added tiktok key in social links in application/client.php
  • [4.81.0] fix (order_tags): cleanup model and controller.
  • [4.81.0] fix (migrations/available countries) : we now import the available countries based on the clients config and updating existing available countries on a new patch
  • [4.81.0] refactor(jcc): update JCC request to use form params instead of query params
  • [4.81.0] fix(AdvGetOrdersTransferStatus): fix to update the order after skroutz track&trace
  • [4.81.0] fix(Adv_orders_admin_admin): add skroutz provider on close pending jobs
  • [4.81.0] fix: add GLOBAL CDN_URL registry to base_url when initializing project and patch it if it is missing
  • [4.81.0] chore: update php packages
  • [4.81.0] fix: Fix the first page of blog in case of empty table of articles
  • [4.81.0] fix(Adv_checkout): fix for klarna payments for incorrect email data (used customer_id for basket build)
  • [4.81.0] fix(Language_storage): get correct name from mainTemplate.json to use template value instead of $config['client_views'] value
  • [4.81.0] fix (cancelIncompleteOrders): we now mark order coupons as unused if order has been canceled by cancelIncompleteOrders
  • [4.81.0] fix(KlarnaWidget): Round all amounts that are to be sent directly to klarna api. Add function cleanString to capitalize and remove tones and apply to all names and surnames to be sent directly to klarna api. Fix for when the store selected is the only available.
  • [4.81.0] fix(mixins/CheckoutPage.js): When calling openPaymentSession or updatePaymentSession check if a session already exists and call accordingly.
  • [4.81.0] fix(Adv_checkout): klarnaPaymentsNotification add missing orderId to render
  • [4.81.0] fix(src/Klarna): log errors to seperate error log file

Notes

  • [4.81.4] Need
    • composer i && php migrator.php migrate
    • npm run all-production
  • [4.81.4] Check if clients write to public/logs or logs and change that to application/logs
  • [4.81.4] check that application/modules/fire_log and Advisable::log are deleted.
  • [4.81.4] Check for overrides:
    • Klarna::writeCalls
    • ShopflixOrders::writeCalls
    • Europharmacy\Base::writeCalls
    • Jcc::writeCalls
    • Product_categories_admin::edit
    • Skroutz_orders_model::{handleOrderCreation|handleOrderUpdate}
    • Product_model::get_max_vendors_discount
    • ClearCacheOnLimit::executeCommand
    • Front_C::defaultRender
    • Products::index
    • Reporting_model::getProductsDashboard In Dioptra and Elxis Remove the override
    • Product_model::getProductsAdminResults Removed the extra join with the feeds lp table
    • Product_reviews_model::getProductReviewsAdminResults
    • Settings::index
    • IqviaUpload::csvDataLine
  • [4.81.3] Need composer i && php migrator.php migrate, npm run all-production
  • [4.81.3] In client server check if exists the cache/delete.sh and remove it and use the master file. Make sure the file is executable (permission 0755 or rwxr-xr-x)
  • [4.81.2] check for overrides on JobsModel::update
  • [4.81.1] need npm run all-production
  • [4.81.0] all client commands must implement getOptions
  • [4.81.0] replace $this->config->item('path_logo') with $this->registry->value('GLOBAL', 'LOGO')
  • [4.81.0] removed background-image: url(../../img/advisable.png); from #index-link of _white_bg_header.scss as it is set from php in view as style style="background-image: url(&lt;?= assetUrl($this->registry->value('GLOBAL', 'LOGO')); ?>)"
  • [4.81.0] Client specific:
    • lulula:
      • The performance tweaks on the coupon input field have been backported.
      • When client is ready to receive this update, divergant code in Api_preview_coupon should be reset back to that of the master branch.
      • You may see conflicts in CheckoutCoupon.vue and CheckoutPage.vue. For CheckoutCoupon.vue keep master. For CheckoutPage.vue keep master only to code relevant to the coupon input field.
  • [4.81.0] Adv_order::preview_coupon has been relocated to a dedicated controller in AdvApiPreviewCoupon::index
  • [4.81.0] Needs:
    • composer i
    • php migrator.php migrate
    • npm run all-production
  • [4.81.0] config/client.php social links updated (for initial maintenance mode of saas). Update with client specific ones.
  • [4.81.0] check in main template for noindex,nofollow rule to contain $siteModeStatus !== SiteMode::Online
  • [4.81.0] Check for calls and overrides to order_tags_model::get_records|get_record|add_record|update_record|delete_record and convert function name to camelCase
  • [4.81.0] if there is conflict in composer.lock check commit for update packages
  • [4.81.0] Check for overrides:
    • Block_Builder::{build|view}
    • Jobs_admin::getJobStatusDates removed
    • Gift_rules_model::data
    • Gifts_model::getGiftForProductsInCart (add the extra case 12 for the new rule)
    • Product_reviews_model::getCustomerEmail
    • Product_reviews_admin::SetStatus (Client Note): In Wecare an GeaPharmacy compare with the parent and remove the over if not needed
    • Settings::eCommercenPlus
    • Settings::eCommercenPlusValidation
    • Settings::only_advisable
    • Settings::index
    • Adv_base_controller::{__construct|defaultRender}
    • Jcc::{registerOrder|getOrderStatus} just in case there is any extend to the src class
    • Language_storage_model::getConfig
    • Checkout::klarnaPayments
    • Blog_model::getBlogsList
    • Blog::index
    • GetOrdersTransferStatus::getSkroutzTransporterStatus
    • Orders_admin::close_pending_jobs
  • [4.81.0] Check for overrides (remove from Dioptra / Elxis) :
    • Jobs_model::update
    • Order_model::getDebrisOrders
    • CancelIncompleteOrders::__construct, cancelPendingDefaultCards