<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Symfony &#8211; Aimeos</title>
	<atom:link href="https://aimeos.org/tips/category/symfony/feed/" rel="self" type="application/rss+xml" />
	<link>https://aimeos.org/tips</link>
	<description>ultra fast PHP e-commerce framework</description>
	<lastBuildDate>Tue, 23 Jul 2024 07:31:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=5.7.8</generator>

<image>
	<url>https://aimeos.org/tips/wp-content/uploads/2019/09/Aimeos_e_200-100x104.png</url>
	<title>Symfony &#8211; Aimeos</title>
	<link>https://aimeos.org/tips</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Aimeos 2023.10 LTS release</title>
		<link>https://aimeos.org/tips/aimeos-2023-10-lts-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2023-10-lts-release/#comments</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Wed, 25 Oct 2023 08:23:40 +0000</pubDate>
				<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[laravel]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[release]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=1005</guid>

					<description><![CDATA[The 2023.10 version of the Aimeos e-commerce framework for Laravel and TYPO3 is available now! Especially developers will love the 2023 version because it contains a lot of simplifications and fully supports scaleable cloud setups like Kubernetes natively. The most<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2023-10-lts-release/">Read more <span class="screen-reader-text">Aimeos 2023.10 LTS release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big.jpg"><img width="1024" height="538" src="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-1024x538.jpg" alt="" class="wp-image-887" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-900x473.jpg 900w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>The 2023.10 version of the Aimeos e-commerce framework for Laravel and TYPO3 is available now! Especially developers will love the 2023 version because it contains a lot of simplifications and fully supports scaleable cloud setups like Kubernetes natively. The most important updates in 2023 are:</p>



<ul><li>Laravel 10 distributions</li><li>TYPO3 12 support</li><li>Kubernetes/Serverless support</li><li>Create managers easily</li><li>Merged order and order base</li><li>Stored basket panel</li><li>DB-based translations for type names</li><li>VueJS and GraphQL in backend</li></ul>



<span id="more-1005"></span>



<h2>Laravel 10 distributions</h2>



<div class="wp-block-image"><figure class="alignright size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6.png"><img width="126" height="130" src="https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6.png" alt="" class="wp-image-863" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6.png 126w, https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6-100x103.png 100w" sizes="(max-width: 126px) 100vw, 126px" /></a></figure></div>



<p>Since the Laravel 10 release in February 2023, Aimeos fully supports the latest Laravel version and since 2023.04, the Aimeos headless and full stack distribution are based on Laravel 10. You can bootstrap your own Aimeos application in less than five minutes using those distributions and get a fully working Laravel 10 application. This also includes pre-configured authentication setup for both, the full stack and the headless distribution.</p>



<h2>TYPO3 12 support</h2>



<div class="wp-block-image"><figure class="alignleft size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/typo3.png"><img width="128" height="128" src="https://aimeos.org/tips/wp-content/uploads/2021/10/typo3.png" alt="" class="wp-image-864" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/typo3.png 128w, https://aimeos.org/tips/wp-content/uploads/2021/10/typo3-100x100.png 100w" sizes="(max-width: 128px) 100vw, 128px" /></a></figure></div>



<p>Also, Aimeos 2023.x fully supports TYPO3 12.4 since it&#8217;s release in April. Many changes has happened in v12 compared to v11, especially a lot of deprecated code has been removed. This made it very hard to make Aimeos 2023.x available for TYPO3 v11 too so we&#8217;ve decided to support v12 only in that release. Therefore, if you need a feature from Aimeos 2023.x or want to upgrade after two years of free support, you must upgrade to the latest TYPO3 v12 too.</p>



<h2>Kubernetes/Serverless support</h2>



<p>We are proud to announce that Aimeos 2023+ is the first cloud-native e-commerce solution for Laravel. Everything including file imports can be distributed across any cloud environment like Kubernetes, AWS, Google Cloud, Azure or so called serverless environments now. Aimeos for Laravel is cloud-ready since the beginning and images/CSS/JS files can be stored in S3 or similar cloud storage services but files were read only from a local file system. This this year, you can store files for importing products, categories, users, etc. from any remote server regardless if they are in CSV or XML format.</p>



<p>We also moved our complete server infrastructure from traditional hosting to a private Kubernetes cloud beginning this year including the web sites, demo setups and private package repository.</p>



<h2>Create managers easily</h2>



<p>Extending existing managers is extremely simply but writing new managers for own data domains or extending existing data domains required a lot of boilerplate code in the past. Since 2023.10, creating new managers is as easy as extending managers now.</p>



<p>First of all, create a setup task for the database migration as before:</p>



<pre class="wp-block-code"><code>namespace Aimeos\Upscheme\Task;

class Test extends Base
{
    public function up()
    {
        $this-&gt;info( 'Creating test schema', 'v' );

        $this-&gt;db( 'db-test' )-&gt;table( $name, function( $table ) {
            $table-&gt;engine = 'InnoDB';

             $table-&gt;id()-&gt;primary( 'pk_mstes_id' );
             $table-&gt;string( 'siteid' );
             $table-&gt;string( 'label' )-&gt;default( '' );
             $table-&gt;int( 'position' )-&gt;default( 0 );
             $table-&gt;smallint( 'status' )-&gt;default( 1 );
             $table-&gt;meta();
         } );
    }
}</code></pre>



<p>Then, create the manager for the new domain named &#8220;test&#8221;:</p>



<pre class="wp-block-code"><code>namespace Aimeos\MShop\Test\Manager;

class Standard
    extends \Aimeos\MShop\Common\Manager\Base
    implements \Aimeos\MShop\Common\Manager\Iface
{
    public function getSaveAttributes() : array
    {
        return $this-&gt;createAttributes( &#91;
            'label' =&gt; &#91;
            ],
            'status' =&gt; &#91;
                'type' =&gt; 'int',
            ],
            'position' =&gt; &#91;
                'type' =&gt; 'int',
                'label' =&gt; 'Position for sorting'
            ],
        ] );
    }
}</code></pre>



<p>That&#8217;s all! You can work with your new manager like with any other manager from the Aimeos core:</p>



<pre class="wp-block-code"><code>$manager = \Aimeos\MShop::create( $this-&gt;context(), 'test' )

$item = $manager-&gt;create()
    -&gt;set( 'label', 'test label' )
    -&gt;set( 'position', 2 )
    -&gt;set( 'status', 1 );

$item = $manager-&gt;save( $item );

$label = $item-&gt;label;
// or using get() with default value
$label = $item-&gt;get( 'label', 'default value' );</code></pre>



<p>For more information, there&#8217;s an article about <a href="https://aimeos.org/docs/latest/models/create-managers/">creating new managers</a> in the Aimeos documentation.</p>



<h2>Merged order and order base</h2>



<p>The biggest architectural change since the beginning is simplifying the order data domain by merging the order and order base tables/managers/items. The initial idea behind was that we can have several invoice/refund entries for each stored order base item (=basket) but that turned out to not work well over the years and complicated handling orders a lot. Thus, the data is all stored in the order record now.</p>



<p>That leads to some consequences, especially for the JSON:API as this change isn&#8217;t backward compatible! An application using the JSON:API doesn&#8217;t need to use the order endpoint any more to create an order item because the basket endpoint did that already. Furthermore, the property names in the basket changed and &#8220;.base&#8221; has to be removed.</p>



<p>The JSON:API has been backward compatible for six years (2017-2022) and we want to keep v2 stable for the next 5-10 years now.</p>



<h2>Stored basket panel</h2>



<div class="wp-block-image"><figure class="alignright size-medium"><a href="https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket.png"><img width="300" height="180" src="https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-300x180.png" alt="" class="wp-image-1009" srcset="https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-1024x614.png 1024w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-1536x922.png 1536w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket-900x540.png 900w, https://aimeos.org/tips/wp-content/uploads/2023/10/saved-basket.png 2000w" sizes="(max-width: 300px) 100vw, 300px" /></a></figure></div>



<p>Customer baskets are stored in the database during some time and now, the admin backend contains a new &#8220;Sales &gt; Baskets&#8221; Panel in the admin backend. Administrators and editors can check saved and abandoned baskets of the customers and it&#8217;s also possible to send emails to 3rd party applications for reminding customers about their abandoned carts.</p>



<h2>DB-based translations for type names</h2>



<div class="wp-block-image"><figure class="alignleft size-medium"><a href="https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations.png"><img width="300" height="180" src="https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-300x180.png" alt="" class="wp-image-1011" srcset="https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-1024x614.png 1024w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-1536x922.png 1536w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations-900x540.png 900w, https://aimeos.org/tips/wp-content/uploads/2023/10/type-translations.png 2000w" sizes="(max-width: 300px) 100vw, 300px" /></a></figure></div>



<p>Before, translations for attribute types were only possible by translating them statically the Gettext translation files or in the Aimeos configuration. Thus, only developers were able to update these translations and it was difficult to update translations if they have been delivered by ERP systems.</p>



<p>Now, type translations are saved in the database along with the types and can be edited in the admin backend and updated easily by ERP systems. This is available for all types, not only attribute types.</p>



<h2>VueJS and GraphQL in backend</h2>



<p>Several panels have been rewritten in the admin backend to use VueJS components now. This lead to better code quality and is another step forward to remove all jQuery-related code in the next versions. Also, VueJS components for which no VueJS 3 version is available has been replaced by better supported ones, namely the combo box select components which have been replaced by Vue Multiselect now. Finally, this will make the upgrade to VueJS 3 possible in the next versions.</p>



<p>Furthermore, requests to the JSON admin API has been replaced by requests to the new GraphQL API where possible. We will continue to extend the GraphQL API and replace existing JSON admin API requests until we completely phased out the JSON admin API. In 2024.x, the JSON admin API will be also marked as deprecated. The frontend JSON:API will never be replaced and will be the only way for frontends to interact with Aimeos servers as GraphQL is not suited well for read-heavy applications like e-commerce apps.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2023-10-lts-release/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2021.10 LTS release</title>
		<link>https://aimeos.org/tips/aimeos-2021-10-lts-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2021-10-lts-release/#comments</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Wed, 27 Oct 2021 17:01:41 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=858</guid>

					<description><![CDATA[The 2021.10 release of the Aimeos e-commerce framework with long term support is available for Laravel, Symfony and TYPO3. It contains a lot of small features repeatedly requested by developers and users and which improve user experience, usability for editors<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2021-10-lts-release/">Read more <span class="screen-reader-text">Aimeos 2021.10 LTS release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big.jpg"><img width="1024" height="538" src="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-1024x538.jpg" alt="" class="wp-image-887" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big-900x473.jpg 900w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-release-rect-big.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p>The 2021.10 release of the Aimeos e-commerce framework with long term support is available for Laravel, Symfony and TYPO3. It contains a lot of small features repeatedly requested by developers and users and which improve user experience, usability for editors and security. The most important improvements are:</p>



<ul><li>Laravel 8 distribution and TYPO3 11</li><li>Radius search and maps</li><li>&#8220;Price on request&#8221; feature</li><li>Product video support</li><li>Improved backend usability</li><li>Custom invoice numbers</li><li>Warehouse management</li><li>PDF with SEPA QR-code and images</li><li>Strict CSP and other improvements</li></ul>



<span id="more-858"></span>



<h2>Laravel 8 distribution and TYPO3 11</h2>



<div class="wp-block-image"><figure class="alignright size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6.png"><img width="126" height="130" src="https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6.png" alt="" class="wp-image-863" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6.png 126w, https://aimeos.org/tips/wp-content/uploads/2021/10/laravel6-100x103.png 100w" sizes="(max-width: 126px) 100vw, 126px" /></a></figure></div>



<p>After Laravel 9 has been postponed to next year, we&#8217;ve decided to update the <a href="https://github.com/aimeos/aimeos" target="_blank" rel="noreferrer noopener">Aimeos standalone shop distribution</a> to Laravel 8 in the meantime. Up to now, the Aimeos distribution was based on Laravel 6 LTS for maximum stability and we will upgrade to Laravel 9 LTS beginning with Aimeos 2022.04+ releases.</p>



<p>Despite of that, the <a href="https://github.com/aimeos/aimeos-laravel" target="_blank" rel="noreferrer noopener">Aimeos Laravel package</a> is available for Laravel 8 since it was released and will be also available for Laravel 9 immediately after its release.</p>



<div class="wp-block-image"><figure class="alignleft size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/typo3.png"><img width="128" height="128" src="https://aimeos.org/tips/wp-content/uploads/2021/10/typo3.png" alt="" class="wp-image-864" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/typo3.png 128w, https://aimeos.org/tips/wp-content/uploads/2021/10/typo3-100x100.png 100w" sizes="(max-width: 128px) 100vw, 128px" /></a></figure></div>



<p>The <a href="https://extensions.typo3.org/extension/aimeos" target="_blank" rel="noreferrer noopener">Aimeos TYPO3 extension</a> is the most widely used e-commerce extension for TYPO3 and even surpassed tt_products this year according to the TER download numbers!</p>



<p>The Aimeos 21.10 LTS release contains full support for TYPO3 11 and also the 1-click <a href="https://extensions.typo3.org/extension/aimeos_dist" target="_blank" rel="noreferrer noopener">Aimeos TYPO3 distribution</a> is available for TYPO3 11.5 LTS since its release.</p>



<h2>Radius search and maps</h2>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-1024x512.png" alt="" class="wp-image-860" width="512" height="256" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-1024x512.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-300x150.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-768x384.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-100x50.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-150x75.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-200x100.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-450x225.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-600x300.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map-900x450.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-supplier-map.png 1200w" sizes="(max-width: 512px) 100vw, 512px" /></a></figure></div>



<p>The Aimeos admin backend contains world maps in the customer and supplier panels now, so editors can select or update the coordinates the addresses belong to. Then, supplier coordinates are added to the product index to enable users searching product within a given radius.</p>



<p>The maps in the backend are generated by Leaflet.js and OpenStreetMap and can be used by anyone without fees.</p>



<h2>Price on request</h2>



<div class="wp-block-image"><figure class="alignleft size-large is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-1024x529.png" alt="" class="wp-image-861" width="512" height="265" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-1024x529.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-300x155.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-768x397.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-100x52.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-150x78.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-200x103.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-450x233.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-600x310.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest-900x465.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-price-onrequest.png 1200w" sizes="(max-width: 512px) 100vw, 512px" /></a></figure></div>



<p>One of the most often requested features, especially in the B2B area, is the ability to create a request for the products in the basket without displaying a price. Then, the price is caculated by different factors and printed at the offer sent to the customer.</p>



<p>If editors add prices with empty values to products, the frontend will display &#8220;on request&#8221; now. Customers can add those products to the basket and can complete the order as normal but the products without a price will be treated like having a price of 0.00.</p>



<p>Mixing products with a regular price and products with prices &#8220;on request&#8221; is no problem and the payment at the end of the checkout process will be done for the products with a regular price only.</p>



<h2>Product video support</h2>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-1024x538.png" alt="" class="wp-image-862" width="512" height="269" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-1024x538.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-300x158.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-768x403.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-100x53.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-150x79.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-200x105.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-450x236.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-600x315.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video-900x473.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-media-video.png 1200w" sizes="(max-width: 512px) 100vw, 512px" /></a></figure></div>



<p>The release also includes support for product videos in MP4/WebM format. You can upload one or more videos in the product media panel of the admin backend and a preview image is generated automatically based on the video content.</p>



<p>The videos are shown like regular product thumbnails in the catalog detail component of the HTML frontend but if users switch to the video, it starts playing automatically without sound.</p>



<h2>Improved backend usability</h2>



<div class="wp-block-image"><figure class="alignleft size-large is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-1024x538.png" alt="" class="wp-image-872" width="512" height="269" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-1024x538.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-300x158.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-768x403.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-100x53.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-150x79.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-200x105.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-450x236.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-600x315.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media-900x473.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-product-media.png 1200w" sizes="(max-width: 512px) 100vw, 512px" /></a></figure></div>



<p>To ease daily work for editors, all media panels now support uploading multiple files at once when clicking on the &#8220;+&#8221; button and each file will create a new card automatically. Before, only the card was added and you had to upload a file for each card. Also, the new release improves cropping and scaling of uploaded images.</p>



<p>In the text panels, CKEditor 5 is now used for editing and styling the text content. The new version also added new features like table and video support within texts which is now available out of the box.</p>



<h2>Custom invoice numbers</h2>



<p>Many shop owners want to customize the invoice numbers for many reasons but this was hardly possible in the past. Now, developers can register custom functions for generating invoice numbers that are used in the HTML frontend, the e-mails or PDFs, e.g.:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="kw2">use</span> \Aimeos\MShop\Order\Item\Standard <span class="kw1">as</span> Order<span class="sy0">;</span>
&nbsp;
Order<span class="sy0">::</span><span class="me2">method</span><span class="br0">&#40;</span> <span class="st_h">'ordernumber'</span><span class="sy0">,</span> <span class="kw2">function</span><span class="br0">&#40;</span> \Aimeos\MShop\Order\Item\Iface <span class="re0">$order</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span class="kw1">return</span> <span class="st_h">'RE-'</span> <span class="sy0">.</span> <span class="kw3">date</span><span class="br0">&#40;</span> <span class="st_h">'Y'</span> <span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'-'</span> <span class="sy0">.</span> <span class="re0">$order</span><span class="sy0">-&gt;</span><span class="me1">getId</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<h2>Warehouse management</h2>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product.png" alt="" class="wp-image-878" width="512" height="256" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-300x150.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-768x384.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-100x50.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-150x75.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-200x100.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-450x225.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-600x300.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/admin-order-product-900x450.png 900w" sizes="(max-width: 512px) 100vw, 512px" /></a></figure></div>



<p>To improve order and warehouse management in Aimeos, there&#8217;s a new payment status for each ordered product. Thus, you can now mark single products as refunded or use any other payment status.</p>



<p>To display the additional information, the product section of the order detail panel has been rewritten. It&#8217;s fully responsive now and easy to use in combination with mobile phones.</p>



<p>For the 2022.x version, you can expect some bigger changes in the Aimeos order domain.</p>



<h2>PDF with SEPA QR-code and images</h2>



<div class="wp-block-image"><figure class="alignleft size-large is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background.png" alt="" class="wp-image-882" width="512" height="256" srcset="https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-300x150.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-768x384.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-100x50.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-150x75.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-200x100.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-450x225.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-600x300.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/10/aimeos-pdf-qr-background-900x450.png 900w" sizes="(max-width: 512px) 100vw, 512px" /></a></figure></div>



<p>The template for the PDF attached to the payment related e-mails contains a QR-code for European IBAN payments. Mobile users whose bank supports scanning these QR-codes can pay invoices within seconds and 100% error free.</p>



<p>In addition, the template also contains example code how to add a background image to the PDF files. Then, companies can send order confirmations including PDFs that look exactly like their well-designed letter papers.</p>



<h2>Strict CSP and other improvements</h2>



<p>Starting with 2021.10 LTS, a strict <a rel="noreferrer noopener" href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP" target="_blank">Content Security Policy</a> has been implemented for the Aimeos backend and for the Laravel frontend. This effectively prevents <a rel="noreferrer noopener" href="https://owasp.org/www-community/attacks/xss/" target="_blank">Cross-Site-Scripting (XSS)</a> where foreign Javascript code is executed in the context of the page loaded by the users&#8217; browser and which is a common source of security incidents.</p>



<p>This also means that inline Javascript in any templates is ignored by browsers now and scripts, CSS, images, videos, etc. are only loaded from well-defined sources. To allow a new URL for any of those objects, you have to overwrite the frontend or backend page template and add the URL there:</p>



<ul><li><a href="https://github.com/aimeos/aimeos-laravel/blob/master/src/views/base.blade.php#L7" target="_blank" rel="noreferrer noopener">Laravel frontend</a></li><li><a rel="noreferrer noopener" href="https://github.com/aimeos/aimeos-laravel/blob/master/src/views/jqadm/index.blade.php#L7" target="_blank">Laravel backend</a></li><li><a rel="noreferrer noopener" href="https://github.com/aimeos/aimeos-typo3/blob/master/Resources/Private/Layouts/Jqadm.html#L7" target="_blank">TYPO3 backend</a></li></ul>



<p>To allow Javascript required by e.g. payment gateways like Stripe, a <a href="https://github.com/aimeoscom/ai-payments/blob/master/lib/custom/src/MShop/Service/Provider/Payment/Stripe.php" target="_blank" rel="noreferrer noopener">&#8220;nonce&#8221;</a> is available to mark JS code within script tags as trusted. Other security improvements include hardening against potential CSRF attacks and SVG images are now sanitized when uploaded, so they doesn&#8217;t contain any Javascript or external URLs.</p>



<p>To improve internationalization, it&#8217;s now possible to translate all error messages with placeholders from the core, even those that are only logged. Furthermore, all log messages has been categorized to filter messages by their source effectively.</p>



<p>Last but not least, the <a href="https://aimeos.org/docs/latest/config/client-html/catalog-detail/#404" target="_blank" rel="noreferrer noopener">catalog detail component</a> can be configured to return a HTTP 404 status instead of displaying an error message that the product could not be found.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2021-10-lts-release/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2021.07 release</title>
		<link>https://aimeos.org/tips/aimeos-2021-07-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2021-07-release/#comments</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Thu, 29 Jul 2021 06:43:38 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=825</guid>

					<description><![CDATA[The second stable release in 2021 of the Aimeos e-commerce framework is now available. The fantastic new default theme is the most notable change for sure but this release contains many more improvements, especially for multi-site environements. The most important<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2021-07-release/">Read more <span class="screen-reader-text">Aimeos 2021.07 release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image is-style-default"><figure class="aligncenter size-full"><a href="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend.jpg"><img width="1200" height="800" src="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend.jpg" alt="" class="wp-image-826" srcset="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend.jpg 1200w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-300x200.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1024x683.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-768x512.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-100x67.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-150x100.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-200x133.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-450x300.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-600x400.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-900x600.jpg 900w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure></div>



<p>The second stable release in 2021 of the Aimeos e-commerce framework is now available. The fantastic new default theme is the most notable change for sure but this release contains many more improvements, especially for multi-site environements. The most important points are:</p>



<ul><li>New default theme</li><li>New settings panel in backend</li><li>Send order notification emails</li><li>Extended order management</li><li>Multi-site improvements</li><li>Improved security</li><li>Upgrade notes</li></ul>



<span id="more-825"></span>



<h2>New default theme</h2>



<p>The first you will notice after installing Aimeos will be the new default theme. It has a very pleasant look and feel and is also great for non-fashion online shops even if the used images create a great experience for an example fashion shopping web site.</p>



<figure class="wp-block-gallery columns-3 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-1024x683.jpg"><img width="1024" height="683" src="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-1024x683.jpg" alt="" data-id="829" data-link="https://aimeos.org/tips/?attachment_id=829" class="wp-image-829" srcset="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-1024x683.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-300x200.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-768x512.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-100x67.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-150x100.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-200x133.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-450x300.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-600x400.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1-900x600.jpg 900w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-1.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="blocks-gallery-item__caption">Home page</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-1024x683.jpg"><img width="1024" height="683" src="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-1024x683.jpg" alt="" data-id="830" data-link="https://aimeos.org/tips/?attachment_id=830" class="wp-image-830" srcset="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-1024x683.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-300x200.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-768x512.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-1536x1024.jpg 1536w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-2048x1365.jpg 2048w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-100x67.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-150x100.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-200x133.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-450x300.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-600x400.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-list-900x600.jpg 900w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="blocks-gallery-item__caption">List page</figcaption></figure></li><li class="blocks-gallery-item"><figure><a href="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail.jpg"><img width="1024" height="683" src="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-1024x683.jpg" alt="" data-id="831" data-full-url="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail.jpg" data-link="https://aimeos.org/tips/?attachment_id=831" class="wp-image-831" srcset="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-1024x683.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-300x200.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-768x512.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-1536x1024.jpg 1536w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-2048x1365.jpg 2048w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-100x67.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-150x100.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-200x133.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-450x300.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-600x400.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-frontend-detail-900x600.jpg 900w" sizes="(max-width: 1024px) 100vw, 1024px" /></a><figcaption class="blocks-gallery-item__caption">Detail page</figcaption></figure></li></ul></figure>



<p>The content below the main image is completely created by using the powerful Aimeos content management extension. You can not only add texts, images and videos in a custom column layout but also insert product lists in between. This allows full content commerce in content pages with custom page URLs which you can add in addition.</p>



<p>Also, the new theme fully supports right to left languages like Arabic as the previous theme did. Colors can be customized easily by using the defined CSS variables and you can adapt the theme totally to your needs. It&#8217;s also fully optimized to receive top scores at Google Lighthouse.</p>



<h2>Admin settings panel</h2>



<div class="wp-block-image"><figure class="alignright size-full is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings.png" alt="Aimeos settings panel in admin backend" class="wp-image-832" width="600" height="375" srcset="https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings.png 2400w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-300x188.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-1024x640.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-768x480.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-1536x960.png 1536w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-2048x1280.png 2048w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-100x63.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-150x94.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-200x125.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-450x281.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-600x375.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-settings-900x563.png 900w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure></div>



<p>There&#8217;s a new panel in the admin backend available for adding configuration options per site including images, shop and theme related settings with is available in &#8220;Configuration &gt; Settings&#8221;. It&#8217;s especially useful in multi-site environments because it allows site admins (shop owners) to configure basic settings themselves and also to choose one of the available themes.</p>



<p>If you use Laravel and the Aimeos installation is configured as multi-site setup with custom domains, shop owners can also set their custom domain name in that panel.</p>



<p>You can extend this panel by custom subparts like any other panel, so site admins can configure any settings they should be able to in a convenient way. There will be more subparts in the future included in Aimeos.</p>



<h2>Send order notification emails</h2>



<div class="wp-block-image"><figure class="alignleft size-full is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1.png" alt="" class="wp-image-838" width="600" height="350" srcset="https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1.png 2400w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-300x175.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-1024x597.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-768x448.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-1536x896.png 1536w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-2048x1195.png 2048w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-100x58.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-150x88.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-200x117.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-450x263.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-600x350.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/07/admin-service-email-1-900x525.png 900w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure></div>



<p>Up to now it was only possible to push the order confirmation e-mails sent to customers also to the shop owner using a BCC e-mail address. This can cause a lot of e-mails because each order is immediately sent in a separate e-mail.</p>



<p>In the new version, there&#8217;s an &#8220;Email&#8221; delivery service provider available which sends e-mails including the order data in a custom e-mail. These e-mails can also contain serveral orders at once and they are sent when the &#8220;order/service/delivery&#8221; job controller is executed. Thus, you can send the e-mails, once a day, every hour or immediately depending on the clients need.</p>



<p>The e-mail content itself as well as the attached file with the orders can be fully customized using the <a href="https://github.com/aimeos/aimeos-core/tree/master/lib/mshoplib/templates/service/provider/delivery">delivery service provider templates</a> located in the Aimeos core.</p>



<h2>Extended order management</h2>



<div class="wp-block-image"><figure class="alignright size-full is-resized"><a href="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products.png"><img src="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products.png" alt="" class="wp-image-844" width="600" height="350" srcset="https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products.png 1200w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-300x175.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-1024x597.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-768x448.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-100x58.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-150x88.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-200x117.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-450x263.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-600x350.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/07/aimeos-backend-order-products-900x525.png 900w" sizes="(max-width: 600px) 100vw, 600px" /></a></figure></div>



<p>In the new release, the detail view of the Aimeos order panel has been extended and contains warehouse management related fields now.</p>



<p>In addition to the already available status and &#8220;Delivery in&#8221; fields, it&#8217;s possible to handle partial deliveries in Aimeos now if e.g. only one product is available for some reasons but two has been ordered. By tracking which and how many products you&#8217;ve already sent to the customer, you get lean warehouse management functionality in case you don&#8217;t have a specialized system for that kind of task.</p>



<p>In the new notes field, you can add an arbitrary text that isn&#8217;t shown to the customer while the content of the &#8220;Delivery in&#8221; field is displayed in the customers&#8217; order history.</p>



<h2>Additional improvements</h2>



<p>Many additionall improvements have been implemented in the new version for multi-site and market place setups. The most noteable is the new scheme for storing uploaded file, including preview images. Before, all files have been stored in two main directories (&#8220;files&#8221; and &#8220;previews&#8221;) and it was almost impossible to find out which file belongs to which site. Now, all files are stored by site ID, e.g. the files for the first site are placed at &#8220;./1./files&#8221; and the previews in &#8220;./1./previews&#8221;. If a merchant decides to close the shop, it&#8217;s now easy to remove all the files that belong to that shop.</p>



<p>Another major improvement affecting security is the activation of the <a href="https://en.wikipedia.org/wiki/Content_Security_Policy" data-type="URL" data-id="https://en.wikipedia.org/wiki/Content_Security_Policy">Content Security Policy</a> (CSP) by default. Frontend (where possible) and admin backend are now protected by a set of rules which allows CSS, Javascript, images and other code and objects only from a very limited set of domains. This prevents <a href="https://en.wikipedia.org/wiki/Cross-site_scripting">cross site scripting</a> and stops executing hazardous content from malicious customers and editors in the browser &#8211; in case someone forgot to escape output properly. Thus, the CSP rules are an additional security layer to avoid security related problems like session hijacking, information disclosure and others.</p>



<p>Now, we are preparing for the 2021.10 LTS release and there will be additional polishing and we plan tighten security rules even futher.</p>



<h2>Upgrade notes</h2>



<p>Since 2021.07, installing Aimeos via composer requires composer 2.1+ and the official Aimeos extensions prefixed with &#8220;ai-&#8221; must be removed from the &#8220;./ext/&#8221; directory. Instead, they are installed into &#8220;./vendor/aimeos/&#8221; now. If you don&#8217;t remove them with</p>



<pre class="wp-block-preformatted">rm -rf ./ext/ai-*</pre>



<p>from your installation after upgrading, you will get an error about these extensions are available twice (once in &#8220;./ext&#8221; and once in &#8220;./vendor/aimeos/&#8221;). Your custom extensions can still be placed in the ./ext directory to make development easier.</p>



<p>Due to splitting uploaded files by site, the directory structure changed and those file are now stored in subdirectories named by the site ID, e.g. &#8220;./1./files/&#8221;. New uploaded files use that new structure automatically, old files stay where they are and are still found &#8211; at least in TYPO3 installations. In Laravel and Symfony installations, the uploaded files will be stored in an additional sub-directory named &#8220;aimeos&#8221; in &#8220;./public&#8221;. The old paths were:</p>



<ul><li>./public/files/&#8230;</li><li>./public/previews/&#8230;</li></ul>



<p>In 2021.07+, the new paths are:</p>



<ul><li>./public/aimeos/1./files/&#8230;</li><li>./public/aimeos/1./previews/&#8230;</li><li>./public/aimeos/2./files/&#8230;</li><li>./public/aimeos/2./previews/&#8230;</li></ul>



<p>Thus, old uploaded files will be only found if you move the old paths to the new &#8220;./public/aimeos&#8221; sub-directory:</p>



<pre class="wp-block-preformatted">mv ./public/files/ ./public/aimeos/files
mv ./public/previews/ ./public/aimeos/previews</pre>



<p>Furthermore, the themes directory for Laravel installation has changed from &#8220;./public/packages/shop&#8221; to &#8220;./public/vendor/shop&#8221; to comply to Laravel standards.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2021-07-release/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2021.04 release</title>
		<link>https://aimeos.org/tips/aimeos-2021-04-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2021-04-release/#respond</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Wed, 28 Apr 2021 09:34:00 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=762</guid>

					<description><![CDATA[The first stable release of the Aimeos e-commerce framework in 2021 contains some major improvements in the front-end and back-end as well as several breaking changes compared to the last LTS version. The new administration interface is the most visible<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2021-04-release/">Read more <span class="screen-reader-text">Aimeos 2021.04 release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image alignfull size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg"><img width="1024" height="538" src="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg" alt="Aimeos release" class="wp-image-287" srcset="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-900x473.jpg 900w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<div class="wp-block-columns">
<div class="wp-block-column">
<p>The first stable release of the Aimeos e-commerce framework in 2021 contains some major improvements in the front-end and back-end as well as several breaking changes compared to the last LTS version. The new administration interface is the most visible of these improvements for sure:</p>



<ul id="block-9a713a3f-ea56-401c-8303-6f5c871925bf"><li>New admin backend incl. dark mode</li><li>RTL support in frontend and admin backend</li><li>Full mobile optimization</li><li>New supplier detail component</li><li>Rule based dynamic pricing</li><li>Extensible CMS extension</li><li>Simplified configuration</li></ul>
</div>
</div>



<span id="more-762"></span>



<h2>New admin backend</h2>



<div class="wp-block-columns">
<div class="wp-block-column">
<p>The design of the admin interface has been completely reworked to resemble a modern, card based interface and includes a lot of eye candy. Compared to backends backends of other e-commerce applications, this is the most modern interface available!</p>



<p>Also included is a cool new dark mode for people prefering dark interfaces and which is much more eye pleasing during the night. You can activate it by clicking on the moon symbol in the upper right corner and once activated it will be used during the whole browser session.</p>
</div>



<div class="wp-block-column">
<figure class="wp-block-image size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin.png"><img width="1024" height="664" src="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-1024x664.png" alt="" class="wp-image-763" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-1024x664.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-300x194.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-768x498.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-100x65.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-150x97.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-200x130.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-450x292.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-600x389.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin-900x583.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-admin.png 1080w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>
</div>



<div class="wp-block-columns">
<div class="wp-block-column">
<pre class="wp-block-code"><code>body {
  --bs-primary: #f12711;
  --bs-primary-alt: #f5af19;
}</code></pre>
</div>



<div class="wp-block-column">
<p>Even if you find the new admin backend too colorful or you prefer other colors to match your companies corporate identity, it&#8217;s extremely easy to adapt the theme now. All colors are defined using CSS variables so you can modify them with a few lines of code, e.g.</p>
</div>
</div>



<div class="wp-block-columns">
<div class="wp-block-column">
<p>As you may have already noticed, the admin dashboard has additional panels for a quick overview for orders and customers and the change compared to the last seven days.</p>



<p>Furthermore, there&#8217;s a new panel for orders by countries including a world map to see immediately where your customers are coming from. All panels are lazy loaded if you scroll down to reduce the number of requests.</p>
</div>



<div class="wp-block-column">
<figure class="wp-block-image size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country.png"><img width="990" height="390" src="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country.png" alt="" class="wp-image-769" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country.png 990w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-300x118.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-768x303.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-100x39.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-150x59.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-200x79.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-450x177.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-600x236.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-dashboard-country-900x355.png 900w" sizes="(max-width: 990px) 100vw, 990px" /></a></figure>
</div>
</div>



<div class="wp-block-columns">
<div class="wp-block-column">
<p>As a major change, all dashboard panels are now implemented using Chart.js instead of D3.js. The new library is much easier to use due to the chart types available out of the box that can be adapted by configuration instead of implementing own code and they also produce smoother graphs.</p>
</div>
</div>



<h2>RTL support</h2>



<div class="wp-block-columns">
<div class="wp-block-column">
<p>Starting which this release, Aimeos has built-in support for right-to-left languages like Arabic, Hebrew and other languages which are written from right to left contrary to languages based on e.g. Latin which are written from left to right.</p>



<p>Besides the text direction this also includes placing of components, menus as well as paddings and margins.</p>
</div>



<div class="wp-block-column">
<figure class="wp-block-image size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl.png"><img width="1024" height="512" src="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-1024x512.png" alt="" class="wp-image-773" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-1024x512.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-300x150.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-768x384.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-100x50.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-150x75.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-200x100.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-450x225.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-600x300.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl-900x450.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rtl.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>
</div>



<div class="wp-block-columns">
<div class="wp-block-column">
<figure class="wp-block-image size-large border"><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1.png"><img width="1024" height="512" src="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-1024x512.png" alt="" class="wp-image-777" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-1024x512.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-300x150.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-768x384.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-100x50.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-150x75.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-200x100.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-450x225.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-600x300.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1-900x450.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-rtl-1.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>



<div class="wp-block-column">
<p>The front-end and back-end of Aimeos is automatically and fully mirrored if an RTL language is selected.</p>



<p>You can try yourself by chosing e.g. Arabic in the language selector of the back-end or add Arabic to the available locales in the front-end. The rest is now automatically done by Aimeos if you use the latest templates.</p>
</div>
</div>



<h2>Full mobile optimization</h2>



<p>In addition to the mobile optimizations in previous releases, all menus and the small basket in the front-end are now implemented as offscreen menus. This ensures that even on very small mobile screens down to 320px width, there&#8217;s always enough space for the content. Moreover, this adapts the design patterns from mobile apps so smartphone users feel like home.</p>



<figure class="wp-block-gallery columns-3 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1.png"><img width="800" height="600" src="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1.png" alt="" data-id="808" data-full-url="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1.png" data-link="https://aimeos.org/tips/?attachment_id=808" class="wp-image-808" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1.png 800w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1-300x225.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1-768x576.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1-100x75.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1-150x113.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1-200x150.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1-450x338.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-catalog-1-600x450.png 600w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1.png"><img width="800" height="600" src="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1.png" alt="" data-id="809" data-full-url="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1.png" data-link="https://aimeos.org/tips/?attachment_id=809" class="wp-image-809" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1.png 800w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1-300x225.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1-768x576.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1-100x75.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1-150x113.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1-200x150.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1-450x338.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-mobile-basket-1-600x450.png 600w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure></li><li class="blocks-gallery-item"><figure><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2.png"><img width="800" height="600" src="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2.png" alt="" data-id="810" data-full-url="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2.png" data-link="https://aimeos.org/tips/?attachment_id=810" class="wp-image-810" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2.png 800w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2-300x225.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2-768x576.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2-100x75.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2-150x113.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2-200x150.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2-450x338.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-mobile-2-600x450.png 600w" sizes="(max-width: 800px) 100vw, 800px" /></a></figure></li></ul></figure>



<h2>Rule based dynamic pricing</h2>



<div class="wp-block-columns">
<div class="wp-block-column">
<p>Shop owners are now able to change the prices for products dynamically e.g. based on which categories the products are in. Thus, it&#8217;s possible to change prices for a group of products within a limited period of time and/or depending on the logged in customer without the need to create a new or adapt the existing prices.</p>



<p>The new Aimeos rule system is extremely flexible and not only allows prices to be adapted dynamically. It&#8217;s also possible to adapt any product content like images, texts, etc. dynamically based on the rules created.</p>
</div>



<div class="wp-block-column">
<figure class="wp-block-image size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules.png"><img width="1000" height="600" src="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules.png" alt="" class="wp-image-803" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules.png 1000w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/04/admin-rules-900x540.png 900w" sizes="(max-width: 1000px) 100vw, 1000px" /></a></figure>
</div>
</div>



<h2>Extensible CMS extension</h2>



<div class="wp-block-columns">
<div class="wp-block-column">
<figure class="wp-block-image size-large"><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms.png"><img width="1024" height="512" src="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-1024x512.png" alt="" class="wp-image-805" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-1024x512.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-300x150.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-768x384.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-100x50.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-150x75.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-200x100.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-450x225.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-600x300.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms-900x450.png 900w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-cms.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
</div>



<div class="wp-block-column">
<p>Beginning with 2021.04, there a <a href="https://github.com/aimeos/ai-cms-grapesjs">Aimeos content management extension</a> available based on GrapesJS, a Javascript CMS framework for managing page content.</p>



<p>Contrary to CKEditor, the  HTML editor used for product related and other texts, it&#8217;s a component based content editor offering building blocks like headlines, paragraphs, images, grids, forms and other building blocks. It&#8217;s a bit like the  editor used by WordPress 5.</p>



<p>As you expect from Aimeos, you can fully extend the editor and add new components for your own purpose. Each block is defined by a few lines of HTML for the structure and the Javascript code to allow the editor to customize the component.</p>
</div>
</div>



<h2>Supplier detail component</h2>



<div class="wp-block-columns">
<div class="wp-block-column">
<p>For those who want to show customers their more details abount the brands, producers or manufacturers of the products, a new supplier detail component is now available.</p>



<p>It will display all information your are entering for the supplier items in the admin backend including images, texts and addresses. Additionally, you can add a catalog list component to the page to list all products that belong to this supplier including sorting and pagination.</p>
</div>



<div class="wp-block-column">
<figure class="wp-block-image size-full border"><a href="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1.png"><img width="1200" height="600" src="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1.png" alt="" class="wp-image-816" srcset="https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1.png 1200w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-300x150.png 300w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-1024x512.png 1024w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-768x384.png 768w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-100x50.png 100w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-150x75.png 150w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-200x100.png 200w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-450x225.png 450w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-600x300.png 600w, https://aimeos.org/tips/wp-content/uploads/2021/04/aimeos-supplier-detail-1-900x450.png 900w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></figure>
</div>
</div>



<h2>Simplified config and breaking changes</h2>



<p>Last but not least, some breaking changes has been made compared to the 2020.10 LTS version to simplify working with Aimeos even more for shop owners and developers alike. The most notable is that the configuration settings which contained &#8220;standard&#8221; in their config keys has been shortend and the &#8220;standard&#8221; part is removed now:</p>



<pre class="wp-block-code"><code>// 2020.10 and before
client/html/catalog/filter/standard/subparts

// 2021.04 and later
client/html/catalog/filter/subparts</code></pre>



<p>Another important change for developers is related to the connection between the stock and product domain. Instead of the product code, now the product ID is used in all stock items to refer to the product item the stock level is associated to. This removes several problems when changing product codes and selecting the right stock level for product in marketplaces.</p>



<p>The full list of <a href="https://aimeos.org/docs/2021.x/changelog/2021.x/">breaking changes</a> are available in the Aimeos documentation.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2021-04-release/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2020.10 LTS release</title>
		<link>https://aimeos.org/tips/aimeos-2020-10-lts-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2020-10-lts-release/#respond</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Thu, 29 Oct 2020 07:10:22 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=689</guid>

					<description><![CDATA[The new 2020.10 release with long term support contains a lot of polishing and some features users and developers have been asking for. But one of the most important changes is related to the documentation, which has been greatly improved!<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2020-10-lts-release/">Read more <span class="screen-reader-text">Aimeos 2020.10 LTS release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image alignfull size-large"><img width="1024" height="538" src="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg" alt="Aimeos 2020.07 release" class="wp-image-287" srcset="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-900x473.jpg 900w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The new 2020.10 release with long term support contains a lot of polishing and some features users and developers have been asking for. But one of the most important changes is related to the documentation, which has been greatly improved! Feature-wise, the most important additions are:</p>



<ul><li>Complete product rating and review system incl. JSON API</li><li>Home page component</li><li>Price facet filter</li><li>Date/time range filter in admin backend</li><li>Simplified getter in context</li><li>Better log entries for SQL statements</li><li>Official Laravel 8 support</li><li>Full AWS support</li></ul>



<span id="more-689"></span>



<h2>New documentation</h2>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-1024x603.png" alt="" class="wp-image-691" width="512" height="302" srcset="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-1024x603.png 1024w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-300x177.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-768x453.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-100x59.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-150x88.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-200x118.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-450x265.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-600x354.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs-900x530.png 900w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-docs.png 1220w" sizes="(max-width: 512px) 100vw, 512px" /></figure></div>



<p></p>



<p>As you may have already noticed, the old documentation Wiki has been retired and a well structured <a rel="noreferrer noopener" href="https://aimeos.org/docs/latest/" target="_blank">Aimeos documentation</a> welcomes developers and users alike.</p>



<p>Due to the clear structure, it should be much easier now to find the documentation you are looking for. If not, you can use the Algolia based full text search at the top to find matching articles very quickly. Tip: The more words you type, the more accurate the found pages will be.</p>



<p>The documentation is based on the Markdown syntax most developers are already familiar with. Everyone can contribute to the new <a rel="noreferrer noopener" href="https://github.com/aimeos/aimeos-docs" target="_blank">documentation repository</a> and is invited to do so to improve the documentation further.</p>



<h2>Reviews and rating</h2>



<div class="wp-block-image"><figure class="alignleft size-large is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews.png" alt="" class="wp-image-692" width="400" height="300" srcset="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews.png 800w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews-300x225.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews-768x576.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews-100x75.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews-150x113.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews-200x150.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews-450x338.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-reviews-600x450.png 600w" sizes="(max-width: 400px) 100vw, 400px" /></figure></div>



<p>Aimeos is getting closer to feature completeness by offering a first-class product rating and review system in the new version. This was one of the last big missing features but not any more!</p>



<p>It&#8217;s design and feature set is similar to Amazon&#8217;s review implementation including the possibility for a vendor response but much nicer in terms of layout and it scales extremely well for very large sites too.</p>



<p>The implementation consists of a new, separate data domain for reviews and ratings. The ratings will be automatically updated when new ones are added and approved. A frontend controller, HTML clients and JSON REST API &#8220;review&#8221; and <a href="https://aimeos.org/docs/latest/frontend/jsonapi/customer-reviews/" target="_blank" rel="noreferrer noopener">&#8220;customer/review&#8221; endpoints</a> for managing the reviews are part of the release.</p>



<h2>New HTML components</h2>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-618x1024.png" alt="" class="wp-image-734" width="309" height="512" srcset="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-618x1024.png 618w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-181x300.png 181w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-768x1272.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-100x166.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-150x248.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-200x331.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-300x497.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-450x745.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2-600x994.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-home-2.png 800w" sizes="(max-width: 309px) 100vw, 309px" /></figure></div>



<p>For the HTML frontend the new &#8220;catalog home&#8221; component is available, which creates a nice start page by displaying category information from the root and first level as well as the promotional products assigned to these categories.</p>



<p>The output consists of the stage image from the &#8220;home&#8221; category (if it exists) and the stage images from its direct sub-categories including their short descriptions. If either the image or the description is missing, the available content uses the available space so the layout adapts to your content in a very flexible way.</p>



<p>Also, the catalog filter component contains a new price filter subpart now:</p>



<figure class="wp-block-image size-large is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-filter-price-1.png" alt="" class="wp-image-725" width="200" height="150" srcset="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-filter-price-1.png 400w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-filter-price-1-300x225.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-filter-price-1-100x75.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-filter-price-1-150x113.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-filter-price-1-200x150.png 200w" sizes="(max-width: 200px) 100vw, 200px" /></figure>



<p>It enables users to limit products by their price using a native HTML5 slider element connected to the input field for the upper price value. Users can also enforce a minimum price if they want to. The upper price is automatically calculated from the product selection limited by the already applied categories or filter facets.</p>



<h2>Admin backend improvements</h2>



<div class="wp-block-image"><figure class="alignleft size-large is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-admin-calender.png" alt="" class="wp-image-727" width="161" height="195" srcset="https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-admin-calender.png 322w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-admin-calender-248x300.png 248w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-admin-calender-100x121.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-admin-calender-150x181.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-admin-calender-200x242.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/10/aimeos-admin-calender-300x362.png 300w" sizes="(max-width: 161px) 100vw, 161px" /></figure></div>



<p>Thanks to the flatpickr Vue.js component and the range expression support in the Aimeos core, you can now filter items in the list views by date ranges. This applies to all date or date/time columns in all list panels and is extremely useful in the order panel to show all order of e.g. the last month and export them afterwards.</p>



<p>Also, the detail views use the new component too for all date/time fields. There, you can not only select a date but also the time, e.g. for the start and end dates. Thus, a convenient way of selecting dates and times is available for users of the Safari browsers now, which is the only major browser that doesn&#8217;t support date/time input fields natively.</p>



<h2>Developer support</h2>



<p>For developers, the new release offers shorter methods for accessing data in the <a href="https://aimeos.org/docs/latest/infrastructure/context/">&#8220;Context&#8221; dependency container</a>, continuing the introduction of short methods for managers in the last version. Thus, you can write now for example:</p>



<ul><li>getDatabaseManager() =&gt; db()</li><li>getFileSystem( &#8216;name&#8217; ) =&gt; fs( &#8216;name&#8217; )</li></ul>



<p>Furthermore, the debug log entries aren&#8217;t JSON-encoded any more, so you can copy e.g. logged SQL statements directly from the log panel in the admin interface and paste them into any database client without the need to remove all that additional JSON characters any more.</p>



<h2>Laravel and AWS</h2>



<p>Aimeos supports the new Laravel 8 release from day one and 2020.10 is the first Aimeos LTS version which is fully working with this major Laravel version. The <a href="https://github.com/aimeos/aimeos-laravel">Aimeos Laravel package</a> now supports Laravel 6, 7 and 8.</p>



<p>Last but not least, deploying Aimeos on AWS using MySQL works like a charm now by passing additional MySQL configuration down to the PDO driver. More concrete, MySQL on AWS requires a certificate configuration that is now supported by custom driver options.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2020-10-lts-release/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2020.07 release</title>
		<link>https://aimeos.org/tips/aimeos-2020-07-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2020-07-release/#respond</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Wed, 22 Jul 2020 07:11:33 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<category><![CDATA[Aimeos]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[import]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[TYPO3 10]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=664</guid>

					<description><![CDATA[The new Aimeos feature release contains some long-awaited new stuff for developers and customers alike. What you get by using the 2020.07 release among various minor improvements and bugfixes is: PDF invoice in order confirmation e-mail Supplier CSV import Improved<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2020-07-release/">Read more <span class="screen-reader-text">Aimeos 2020.07 release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image alignfull size-large"><img width="1024" height="538" src="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg" alt="Aimeos 2020.07 release" class="wp-image-287" srcset="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-900x473.jpg 900w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>The new Aimeos feature release contains some long-awaited new stuff for developers and customers alike. What you get by using the 2020.07 release among various minor improvements and bugfixes is:</p>



<ul><li>PDF invoice in order confirmation e-mail</li><li>Supplier CSV import</li><li>Improved admin backend for mobile phones</li><li>Better full text search and URL segments</li><li>Official TYPO3 10 support</li><li>Simplified manager and criteria filter methods</li></ul>



<span id="more-664"></span>



<h2>PDF invoice in confirmation e-mail</h2>



<div class="wp-block-image"><figure class="alignright size-medium"><img width="212" height="300" src="https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-212x300.png" alt="" class="wp-image-665" srcset="https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-212x300.png 212w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-724x1024.png 724w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-768x1086.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-100x141.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-150x212.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-200x283.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-300x424.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-450x636.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-600x848.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf-900x1273.png 900w, https://aimeos.org/tips/wp-content/uploads/2020/07/aimeos-order-pdf.png 930w" sizes="(max-width: 212px) 100vw, 212px" /><figcaption>PDF invoice example</figcaption></figure></div>



<p>One of the most often requested features is now part of the Aimeos core: A nice looking template which can be easily adapted to the clients requirements and corporate design. The full source code for the invoice PDFs was contributed by the <a href="https://aimeos.com" target="_blank" rel="noreferrer noopener">Aimeos GmbH</a>.</p>



<p>The PDF document is generated from a HTML template and automatically attached to the e-mails sent to customers when the order has been paid. You can change the content and the layout of the PDF by adapting the template only, including header and footer sections repeated on each page. </p>



<p>Internally, the <a href="https://tcpdf.org/" target="_blank" rel="noreferrer noopener">TCPDF library</a> is used for creating the PDF from the HTML template, which also supports splitting long content  to several pages automatically. In composer based setups, TCPDF is automatically added and installed as dependency. For TYPO3 integrators who still download packages from TER, there&#8217;s a new dependency the <a href="https://extensions.typo3.org/extension/pdfviewhelpers/" target="_blank" rel="noreferrer noopener">pdfviewhelpers extension</a> due to the size of the TCPDF libary.</p>



<h2>Supplier CSV import</h2>



<p>Up to version 2020.07, you have been able to import several entities via configurable CSV files:</p>



<ul><li>attributes</li><li>categories</li><li>coupon codes</li><li>products</li><li>stock levels</li></ul>



<p>Now, you can also import supplier data including addresses, images, texts and references to other domains like products. Also, you can add supplier references in the product CSV import too.</p>



<p>This part of the new release was a big contribution by <a href="https://www.linkedin.com/in/alexey-sh/" target="_blank" rel="noreferrer noopener">Alexey, an Aimeos developer and freelancer</a> who offers his expertise for custom projects.</p>



<h2>Improved admin backend for mobile phones</h2>



<div class="wp-block-image"><figure class="alignright size-medium is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3-300x225.png" alt="" class="wp-image-671" width="320" height="240" srcset="https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3-300x225.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3-100x75.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3-150x113.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3-200x150.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3-450x338.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3-600x450.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/07/admin-backend-mobile3.png 640w" sizes="(max-width: 320px) 100vw, 320px" /></figure></div>



<p>Thanks to <a rel="noreferrer noopener" href="https://www.linkedin.com/in/robertwildling/" target="_blank">Robert</a>, who did an amazing job improving the backend styles, the Aimeos admin interface is much better usable by mobile phone users regardless of their display size. Even with an old iPhones which only have 320px width, managing the items is fully possible now.</p>



<p>Header texts which are too long fade out, the size of the buttons has been adapted to the smallest supported viewport size and all tables gets a scollbar if their columns are bigger than the screen.</p>



<p>Additionally, the left navigation menu got some love and displays the names of the navigation items when clicking on the bottom arrow button. Thus, mobile phone users can see what their meaning is if they can&#8217;t remember.</p>



<h2>Better full text search and URL segments</h2>



<p>The results of the full text search offered by MySQL, PostgreSQL and SQL Server has been refined to return more relevant results. Especially for phrases with several words, stop words and special characters, it yields much better results now.</p>



<p>Optimized URL segments can be added as text to products and categories, but generating URL segments from labels led to a loss of characters if special characters not covered by the ASCII character set was used. Thanks to the <a rel="noreferrer noopener" href="https://github.com/voku/portable-ascii" target="_blank">&#8220;voku/portable-ascii&#8221;</a> library, these characters are now transliterated to the best matching ASCII character or to several characters like for &#8220;ä -&gt; ae&#8221;.</p>



<h2>Official TYPO3 10 support</h2>



<div class="wp-block-image"><figure class="alignright size-thumbnail is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/07/typo3-logo.svg" alt="" class="wp-image-679" width="200" height="200"/></figure></div>



<p>Three month after TYPO3 10 LTS has been released, the Aimeos TYPO3 extension officially supports the new TYPO3 major release. It took some time until the <a href="https://extensions.typo3.org/extension/static_info_tables" target="_blank" rel="noreferrer noopener">static_info_tables extension</a> was available for TYPO3 10, which Aimeos depends on.</p>



<p>The Aimeos 20.7.x extension supports TYPO3 v9 and v10 only because it removes all methods deprecated by v9 and dropped in v10 to clean up the code base. Furthermore, it uses the new APIs  if applicable and offers it&#8217;s own panel for all Aimeos plugin elements with icons and descriptions to support new users.</p>



<h2>Simplified manager and criteria filter methods</h2>



<p>Working with Aimeos should be fun and even you can do the most complex things in e-commerce using Aimeos, the code you have to write should be as small as possible. Therefore, the manager methods have been shorted to:</p>



<figure class="wp-block-table"><table><tbody><tr><td><strong>Existing methods</strong></td><td><strong>New method</strong></td></tr><tr><td>deleteItem(), deleteItems()</td><td>delete()</td></tr><tr><td>findItem()</td><td>find()</td></tr><tr><td>getItem()</td><td>get()</td></tr><tr><td>saveItem(), saveItems()</td><td>save()</td></tr><tr><td>searchItems()</td><td>search()</td></tr></tbody></table></figure>



<p>Also, building filter criteria for the <em>search()</em> method is now much easier. Instead of:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$search</span> <span class="sy0">=</span> <span class="re0">$manager</span><span class="sy0">-&gt;</span><span class="me1">createSearch</span><span class="br0">&#40;</span> <span class="kw4">true</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">slice</span><span class="br0">&#40;</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">100</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$search</span><span class="sy0">-&gt;</span><span class="me1">setConditions</span><span class="br0">&#40;</span> <span class="re0">$search</span><span class="sy0">-&gt;</span><span class="me1">combine</span><span class="br0">&#40;</span> <span class="st_h">'&amp;&amp;'</span><span class="sy0">,</span> <span class="br0">&#91;</span>
    <span class="re0">$search</span><span class="sy0">-&gt;</span><span class="me1">compare</span><span class="br0">&#40;</span> <span class="st_h">'=='</span><span class="sy0">,</span> <span class="st_h">'product.type'</span><span class="sy0">,</span> <span class="st_h">'default'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
    <span class="re0">$search</span><span class="sy0">-&gt;</span><span class="me1">compare</span><span class="br0">&#40;</span> <span class="st_h">'=='</span><span class="sy0">,</span> <span class="st_h">'product.dataset'</span><span class="sy0">,</span> <span class="st_h">'shirt'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
    <span class="re0">$search</span><span class="sy0">-&gt;</span><span class="me1">compare</span><span class="br0">&#40;</span> <span class="st_h">'&gt;'</span><span class="sy0">,</span> <span class="st_h">'product.datestart'</span><span class="sy0">,</span> <span class="st_h">'2020-01-01'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
    <span class="re0">$search</span><span class="sy0">-&gt;</span><span class="me1">getConditions</span><span class="br0">&#40;</span><span class="br0">&#41;</span>
<span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="re0">$search</span><span class="sy0">-&gt;</span><span class="me1">setSortations</span><span class="br0">&#40;</span> <span class="br0">&#91;</span>
    <span class="re0">$search</span><span class="sy0">-&gt;</span><span class="kw3">sort</span><span class="br0">&#40;</span> <span class="st_h">'-'</span><span class="sy0">,</span> <span class="st_h">'product.label'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
    <span class="re0">$search</span><span class="sy0">-&gt;</span><span class="kw3">sort</span><span class="br0">&#40;</span> <span class="st_h">'+'</span><span class="sy0">,</span> <span class="st_h">'product.id'</span> <span class="br0">&#41;</span>
<span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>You can now write using the new 2020.07 release:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$f</span> <span class="sy0">=</span> <span class="re0">$manager</span><span class="sy0">-&gt;</span><span class="me1">filter</span><span class="br0">&#40;</span> <span class="kw4">true</span> <span class="br0">&#41;</span><span class="sy0">-&gt;</span><span class="me1">slice</span><span class="br0">&#40;</span> <span class="nu0">0</span><span class="sy0">,</span> <span class="nu0">100</span> <span class="br0">&#41;</span>
    <span class="sy0">-&gt;</span><span class="me1">add</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'product.type'</span> <span class="sy0">=&gt;</span> <span class="st_h">'default'</span><span class="sy0">,</span> <span class="st_h">'product.dataset'</span> <span class="sy0">=&gt;</span> <span class="st_h">'shirt'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span>
    <span class="sy0">-&gt;</span><span class="me1">add</span><span class="br0">&#40;</span> <span class="st_h">'product.datestart'</span><span class="sy0">,</span> <span class="st_h">'&gt;'</span><span class="sy0">,</span> <span class="st_h">'2020-01-01'</span> <span class="br0">&#41;</span>
    <span class="sy0">-&gt;</span><span class="kw3">sort</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'-product.label'</span><span class="sy0">,</span> <span class="st_h">'product.id'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>This will cover 95% of all use cases. A more complex example including mixed AND and OR operators:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">add</span><span class="br0">&#40;</span> <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">and</span><span class="br0">&#40;</span> <span class="br0">&#91;</span>
    <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">or</span><span class="br0">&#40;</span> <span class="br0">&#91;</span>
        <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">is</span><span class="br0">&#40;</span> <span class="st_h">'product.datestart'</span><span class="sy0">,</span> <span class="st_h">'&lt;'</span><span class="sy0">,</span> <span class="st_h">'2000-01-01'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
        <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">is</span><span class="br0">&#40;</span> <span class="st_h">'product.datestart'</span><span class="sy0">,</span> <span class="st_h">'=='</span><span class="sy0">,</span> <span class="kw4">null</span> <span class="br0">&#41;</span><span class="sy0">,</span> <span class="br0">&#93;</span>
    <span class="br0">&#41;</span><span class="sy0">,</span>
    <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">or</span><span class="br0">&#40;</span> <span class="br0">&#91;</span>
        <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">is</span><span class="br0">&#40;</span> <span class="st_h">'product.dateend'</span><span class="sy0">,</span> <span class="st_h">'&gt;'</span><span class="sy0">,</span> <span class="st_h">'2000-01-01'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
        <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">is</span><span class="br0">&#40;</span> <span class="st_h">'product.dateend'</span><span class="sy0">,</span> <span class="st_h">'=='</span><span class="sy0">,</span> <span class="kw4">null</span> <span class="br0">&#41;</span>
    <span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">,</span>
<span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>You can use the NOT operator for negating all conditions:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">add</span><span class="br0">&#40;</span> <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">not</span><span class="br0">&#40;</span> <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">and</span><span class="br0">&#40;</span> <span class="br0">&#91;</span>
    <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">is</span><span class="br0">&#40;</span> <span class="st_h">'product.type'</span><span class="sy0">,</span> <span class="st_h">'=='</span><span class="sy0">,</span> <span class="st_h">'default'</span> <span class="br0">&#41;</span><span class="sy0">,</span>
    <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">is</span><span class="br0">&#40;</span> <span class="st_h">'product.status'</span><span class="sy0">,</span> <span class="st_h">'=='</span><span class="sy0">,</span> <span class="nu0">0</span> <span class="br0">&#41;</span><span class="sy0">,</span>
<span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>Creating search functions to pass parameters as part of the search key are also much easier to use now:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">add</span><span class="br0">&#40;</span> <span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">make</span><span class="br0">&#40;</span> <span class="st_h">'product:has'</span><span class="sy0">,</span> <span class="br0">&#91;</span><span class="st_h">'attribute'</span><span class="sy0">,</span> <span class="st_h">'default'</span><span class="sy0">,</span> <span class="nu0">123</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">,</span> <span class="st_h">'!='</span><span class="sy0">,</span> <span class="kw4">null</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>Finally, you can parse a complete condition block like before:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$f</span><span class="sy0">-&gt;</span><span class="me1">parse</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'||'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span>
    <span class="br0">&#91;</span>
        <span class="st_h">'&lt;'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'product.datestart'</span> <span class="sy0">=&gt;</span> <span class="st_h">'2000-01-01'</span><span class="br0">&#93;</span><span class="sy0">,</span>
        <span class="st_h">'=='</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'product.datestart'</span> <span class="sy0">=&gt;</span> <span class="kw4">null</span><span class="br0">&#93;</span>
    <span class="br0">&#93;</span><span class="sy0">,</span> <span class="br0">&#91;</span>
        <span class="st_h">'&gt;'</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'product.dateend'</span> <span class="sy0">=&gt;</span> <span class="st_h">'2000-01-01'</span><span class="br0">&#93;</span><span class="sy0">,</span>
        <span class="st_h">'=='</span> <span class="sy0">=&gt;</span> <span class="br0">&#91;</span><span class="st_h">'product.dateend'</span> <span class="sy0">=&gt;</span> <span class="kw4">null</span><span class="br0">&#93;</span>
    <span class="br0">&#93;</span>
<span class="br0">&#93;</span> <span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span></pre></div></div></div></div></div></div></div>






<p>The old manager and criteria API is still available so all extensions developed from 2020.x will continue to work without problems, but the old APIs are deprecated and will be removed in the future.</p>



<h2>More about Aimeos</h2>



<ul><li>Web site: <a href="https://aimeos.org">https://aimeos.org</a></li><li>Github: <a href="https://github.com/aimeos">https://github.com/aimeos</a></li><li>TYPO3 TER: <a href="https://extensions.typo3.org/extension/aimeos/">https://extensions.typo3.org/extension/aimeos/</a></li></ul>



<ul><li>Facebook: <a href="https://facebook.com/Aimeos">https://facebook.com/Aimeos</a></li><li>Twitter: <a href="https://twitter.com/Aimeos">https://twitter.com/Aimeos</a></li><li>YouTube: <a href="https://youtube.com/c/aimeos">https://youtube.com/c/aimeos</a></li></ul>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2020-07-release/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2020.04 release</title>
		<link>https://aimeos.org/tips/aimeos-2020-04-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2020-04-release/#comments</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Mon, 18 May 2020 19:46:33 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=601</guid>

					<description><![CDATA[2020.04 is the first stable release this year which contains a lot of changes and improvements. The most important one are: Slick and clean frontend theme Better admin interface usability Major performance improvement when using MySQL SEO improvements and support<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2020-04-release/">Read more <span class="screen-reader-text">Aimeos 2020.04 release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image alignfull size-large"><img width="1024" height="538" src="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg" alt="" class="wp-image-287" srcset="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-900x473.jpg 900w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>2020.04 is the first stable release this year which contains a lot of changes and improvements. The most important one are:</p>



<ul><li>Slick and clean frontend theme</li><li>Better admin interface usability</li><li>Major performance improvement when using MySQL</li><li>SEO improvements and support for fractional quantities</li><li>Cleaned up templates for the HTML client</li><li>Full SQL Server support</li><li>Requires PHP 7.1 and PHP Map object</li><li>Retrieve related items more easily</li></ul>



<div class="wp-block-group"><div class="wp-block-group__inner-container">
<span id="more-601"></span>
</div></div>



<h2>Slick and clean frontend theme</h2>



<figure class="wp-block-gallery aligncenter columns-3 is-cropped"><ul class="blocks-gallery-grid"><li class="blocks-gallery-item"><figure><img width="1000" height="750" src="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend.png" alt="" data-id="602" class="wp-image-602" srcset="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend.png 1000w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-300x225.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-768x576.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-100x75.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-150x113.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-200x150.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-450x338.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-600x450.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-frontend-900x675.png 900w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure></li><li class="blocks-gallery-item"><figure><img width="1000" height="600" src="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2.png" alt="" data-id="603" data-link="https://aimeos.org/tips/?attachment_id=603" class="wp-image-603" srcset="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2.png 1000w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-2-900x540.png 900w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure></li><li class="blocks-gallery-item"><figure><img width="1000" height="600" src="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3.png" alt="" data-id="604" data-full-url="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3.png" data-link="https://aimeos.org/tips/?attachment_id=604" class="wp-image-604" srcset="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3.png 1000w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-theme-3-900x540.png 900w" sizes="(max-width: 1000px) 100vw, 1000px" /></figure></li></ul></figure>



<p>Thanks to our partner <a href="https://business-unicorns.de/">business unicorns</a> who created a new design for Aimeos, the default frontend theme is now much more pleasing. From the technical point of view, it&#8217;s using CSS3 variables for the colors so it&#8217;s extremely easy to apply your own CI colors to the theme. Only include a CSS file before the Aimeos CSS which contains your own colors in:</p>



<pre lang="css" class="wp-block-preformatted">.aimeos {
  --ai-primary: #FFA840;
  --ai-primary-light: #FFB850;
  --ai-secondary: #555;
  --ai-light: #D0D0D0;
  --ai-bg: #FFF;
}</pre>



<h2>Better admin interface usability</h2>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new.png" alt="" class="wp-image-606" width="500" height="300" srcset="https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new.png 1000w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/05/admin-product-new-900x540.png 900w" sizes="(max-width: 500px) 100vw, 500px" /></figure></div>



<p>Especially the product panel had a lot of tabs and fields visible by default even if they are not necessary for the the majority of editors. They are reduced to the essential parts used in 80% of all cases like shown in the screenshot. Especially first time users now know exactly which fields and tabs are important to create their first products.</p>



<p>The advanced tabs and fields are still available but only after clicking on the drop-down icon in the tab list or below the shown form fields. This does also work using a smart phone, even if the tabs are then placed horizontally above the form fields.</p>



<h2>Major performance improvement</h2>



<p>When using the ai-sites extension from the Aimeos company in <a href="https://aimeos.org/laravel-marketplace-ecommerce">market place mode,</a> MySQL stopped using indexes when the number of site IDs in the queries where more than a few. This led to a major performance decrease when market places had hundreds of vendors and a lot of products.</p>



<p>In 2020.04, the site IDs contains the parent site IDs too and form a path to the site in the site tree, e.g. &#8220;1.2.5.&#8221;. Now, retrieving all products for all vendors is simple for MySQL because the site ID just has to start with the parent site, e.g. &#8220;1.&#8221;. Thus, the existing indexes are always used by MySQL. Other database servers like PostgreSQL were not affected but will profit from the simpler queries too.</p>



<h2>SEO and fractional quantities</h2>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale.png" alt="" class="wp-image-608" width="500" height="300" srcset="https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale.png 1000w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/05/aimeos-admin-seo-scale-900x540.png 900w" sizes="(max-width: 500px) 100vw, 500px" /></figure></div>



<p>For the URL segment of product URLs either the language dependent texts of type &#8220;url-segment&#8221; added by the editor where used or the sanitized label. Now it&#8217;a also possible to define a language indepented URL segment that is different from the label in the product panel. This does also apply to the categories.</p>



<p>Selling non-standard products where customers can also buy pieces is now possible without custom code. The &#8220;quantity scale&#8221; of each product defines the minimum amount a customer can buy, e.g. 100g if the standard price is per kilogram or 0,25m² for areal sized products.  It&#8217;s also possible to define quantity scales larger than one.</p>



<h2>HTML client templates</h2>



<p>One often heard critisism about Aimeos was that the HTML templates contained not only HTML code and a few statements for conditions and loops to generate the final output but also PHP code to transform the data from the items to the requirements of the templates.</p>



<p>This code is now part of the client classes or has been moved to view helpers. Therefore the templates itself are now much cleaner and contain much less code so they are simpler to understand for integrators and frontend developers.</p>



<h2>Full SQL Server support</h2>



<div class="wp-block-image"><figure class="alignright is-resized"><img src="https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-1024x831.png" alt="" class="wp-image-610" width="256" height="208" srcset="https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-1024x831.png 1024w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-300x243.png 300w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-768x623.png 768w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-100x81.png 100w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-150x122.png 150w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-200x162.png 200w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-450x365.png 450w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-600x487.png 600w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo-900x730.png 900w, https://aimeos.org/tips/wp-content/uploads/2020/05/SQLServer-logo.png 1035w" sizes="(max-width: 256px) 100vw, 256px" /></figure></div>



<p>Besides MySQL/MariaDB and PostgreSQL, Microsoft SQL Server is now the third relational database management system fully supported by Aimeos. You can use both, SQL Server 2015+ installed on-premise or the variant available in the Azure cloud.</p>



<p>All Aimeos feature are available including ultra-fast full text search, provided the <a href="https://docs.microsoft.com/en-us/sql/relational-databases/search/full-text-search">Microsoft full text search</a> plugin is installed. Otherwise, only the slow LIKE based search is available, which isn&#8217;t suitable for several thousand products and more.</p>



<h2>PHP 7.1 and PHP Map object</h2>



<p>Version 2020.04 and later requires at least PHP 7.1 because the Aimeos code base now makes full use of scalar type hints as well as return type checking for all methods. Thus, the PHP interpreter can throw type exceptions much earlier which simplifies debugging for developers.</p>



<p>Also Aimeos uses the Map object from the <a href="https://github.com/aimeos/map">aimeos/map package</a> instead of arrays as return value of searchItems() and whenever it simplifies the code. Instead of:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$list</span> <span class="sy0">=</span> <span class="br0">&#91;</span><span class="br0">&#91;</span><span class="st_h">'id'</span> <span class="sy0">=&gt;</span> <span class="st_h">'one'</span><span class="sy0">,</span> <span class="st_h">'value'</span> <span class="sy0">=&gt;</span> <span class="st_h">'value1'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="br0">&#91;</span><span class="st_h">'id'</span> <span class="sy0">=&gt;</span> <span class="st_h">'two'</span><span class="sy0">,</span> <span class="st_h">'value'</span> <span class="sy0">=&gt;</span> <span class="st_h">'value2'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw4">null</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$list</span><span class="br0">&#91;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="br0">&#91;</span><span class="st_h">'id'</span> <span class="sy0">=&gt;</span> <span class="st_h">'three'</span><span class="sy0">,</span> <span class="st_h">'value'</span> <span class="sy0">=&gt;</span> <span class="st_h">'value3'</span><span class="br0">&#93;</span><span class="sy0">;</span>    <span class="co1">// add element</span>
<span class="kw3">unset</span><span class="br0">&#40;</span> <span class="re0">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>                                   <span class="co1">// remove element</span>
<span class="re0">$list</span> <span class="sy0">=</span> <span class="kw3">array_filter</span><span class="br0">&#40;</span> <span class="re0">$list</span> <span class="br0">&#41;</span><span class="sy0">;</span>                       <span class="co1">// remove empty values</span>
<span class="kw3">sort</span><span class="br0">&#40;</span> <span class="re0">$list</span> <span class="br0">&#41;</span><span class="sy0">;</span>                                       <span class="co1">// sort elements</span>
<span class="re0">$pairs</span> <span class="sy0">=</span> array_column<span class="br0">&#40;</span> <span class="re0">$list</span><span class="sy0">,</span> <span class="st_h">'value'</span><span class="sy0">,</span> <span class="st_h">'id'</span> <span class="br0">&#41;</span><span class="sy0">;</span>       <span class="co1">// create ['three' =&gt; 'value3']</span>
<span class="re0">$value</span> <span class="sy0">=</span> <span class="kw3">reset</span><span class="br0">&#40;</span> <span class="re0">$pairs</span> <span class="br0">&#41;</span> ?<span class="sy0">:</span> <span class="kw4">null</span><span class="sy0">;</span>                    <span class="co1">// return first value</span></pre></div></div></div></div></div></div></div>






<p>You can now write:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$list</span> <span class="sy0">=</span> <span class="br0">&#91;</span><span class="br0">&#91;</span><span class="st_h">'id'</span> <span class="sy0">=&gt;</span> <span class="st_h">'one'</span><span class="sy0">,</span> <span class="st_h">'value'</span> <span class="sy0">=&gt;</span> <span class="st_h">'value1'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="br0">&#91;</span><span class="st_h">'id'</span> <span class="sy0">=&gt;</span> <span class="st_h">'two'</span><span class="sy0">,</span> <span class="st_h">'value'</span> <span class="sy0">=&gt;</span> <span class="st_h">'value2'</span><span class="br0">&#93;</span><span class="sy0">,</span> <span class="kw4">null</span><span class="br0">&#93;</span><span class="sy0">;</span>
&nbsp;
<span class="re0">$value</span> <span class="sy0">=</span> map<span class="br0">&#40;</span> <span class="re0">$list</span> <span class="br0">&#41;</span>                                <span class="co1">// create Map</span>
    <span class="sy0">-&gt;</span><span class="me1">push</span><span class="br0">&#40;</span> <span class="br0">&#91;</span><span class="st_h">'id'</span> <span class="sy0">=&gt;</span> <span class="st_h">'three'</span><span class="sy0">,</span> <span class="st_h">'value'</span> <span class="sy0">=&gt;</span> <span class="st_h">'value3'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span> <span class="co1">// add element</span>
    <span class="sy0">-&gt;</span><span class="me1">remove</span><span class="br0">&#40;</span> <span class="nu0">0</span> <span class="br0">&#41;</span>                                    <span class="co1">// remove element</span>
    <span class="sy0">-&gt;</span><span class="me1">filter</span><span class="br0">&#40;</span><span class="br0">&#41;</span>                                       <span class="co1">// remove empty values</span>
    <span class="sy0">-&gt;</span><span class="kw3">sort</span><span class="br0">&#40;</span><span class="br0">&#41;</span>                                         <span class="co1">// sort elements</span>
    <span class="sy0">-&gt;</span><span class="me1">col</span><span class="br0">&#40;</span> <span class="st_h">'value'</span><span class="sy0">,</span> <span class="st_h">'id'</span> <span class="br0">&#41;</span>                           <span class="co1">// create ['three' =&gt; 'value3']</span>
    <span class="sy0">-&gt;</span><span class="me1">first</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>                                       <span class="co1">// return first value</span></pre></div></div></div></div></div></div></div>






<p>That saved some hundred lines of code in the current code base compared to 2019.x and before.</p>



<h2>Retrieve related items more easily</h2>



<p>Last but not least, several methods for retrieving related items are available now. This simplifies custom code because instead of writing code to fetch categories, suppliers, stocks and order base data yourself, you can now simply tell searchItems() what you need:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$products</span> <span class="sy0">=</span> <span class="re0">$manager</span><span class="sy0">-&gt;</span><span class="me1">searchItems</span><span class="br0">&#40;</span> <span class="re0">$filter</span><span class="sy0">,</span> <span class="br0">&#91;</span><span class="st_h">'catalog'</span><span class="sy0">,</span> <span class="st_h">'stock'</span><span class="sy0">,</span> <span class="st_h">'supplier'</span><span class="br0">&#93;</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">foreach</span><span class="br0">&#40;</span> <span class="re0">$products</span> <span class="kw1">as</span> <span class="re0">$product</span> <span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span class="re0">$product</span><span class="sy0">-&gt;</span><span class="me1">getCatalogItems</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$product</span><span class="sy0">-&gt;</span><span class="me1">getSupplierItems</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$product</span><span class="sy0">-&gt;</span><span class="me1">getStockItems</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>






<p>The same works in the order domain where you can order items including their base items, ordered products, address data, used coupons and delivery/payment service data:</p>





<div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><pre class="de1"><span class="re0">$domains</span> <span class="sy0">=</span> <span class="br0">&#91;</span><span class="st_h">'order/base'</span><span class="sy0">,</span> <span class="st_h">'order/base/address'</span><span class="sy0">,</span> <span class="st_h">'order/base/coupon'</span><span class="sy0">,</span> <span class="st_h">'order/base/product'</span><span class="sy0">,</span> <span class="st_h">'order/base/service'</span><span class="br0">&#93;</span><span class="sy0">;</span>
<span class="re0">$orders</span> <span class="sy0">=</span> <span class="re0">$manager</span><span class="sy0">-&gt;</span><span class="me1">searchItems</span><span class="br0">&#40;</span> <span class="re0">$filter</span><span class="sy0">,</span> <span class="re0">$domains</span> <span class="br0">&#41;</span><span class="sy0">;</span>
<span class="kw1">foreach</span><span class="br0">&#40;</span> <span class="re0">$orders</span> <span class="kw1">as</span> <span class="re0">$order</span> <span class="br0">&#41;</span>
<span class="br0">&#123;</span>
    <span class="re0">$basket</span> <span class="sy0">=</span> <span class="re0">$order</span><span class="sy0">-&gt;</span><span class="me1">getOrderBaseItem</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$basket</span><span class="sy0">-&gt;</span><span class="me1">getAddresses</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$basket</span><span class="sy0">-&gt;</span><span class="me1">getCoupons</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$basket</span><span class="sy0">-&gt;</span><span class="me1">getProducts</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
    <span class="re0">$basket</span><span class="sy0">-&gt;</span><span class="me1">getServices</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span>
<span class="br0">&#125;</span></pre></div></div></div></div></div></div></div>






<h2>Final words</h2>



<p>All breaking changes between 2019.10 and 2020.04 are available in the <a href="https://aimeos.org/docs/Developers/Changelog/2020">changelog</a>. If you want to upgrade from an earlier version, please check the list carefully and adapt your code. In custom code, you especially need to care about changed method signatures due to the  the PHP 7.1 type hints.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2020-04-release/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2019.10 LTS release</title>
		<link>https://aimeos.org/tips/aimeos-2019-10-lts-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2019-10-lts-release/#comments</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Wed, 23 Oct 2019 17:14:11 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Neos]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[SlimPHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=437</guid>

					<description><![CDATA[The new 2019.10 branch of the Aimeos e-commerce framework with long term support (LTS) contains lots of helpful improvements. The most important ones are: AI-based translation of texts with DeepL Customizable product datasets Manage multiple tax rates Watermarks for images Bulk<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2019-10-lts-release/">Read more <span class="screen-reader-text">Aimeos 2019.10 LTS release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-287" src="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg" alt="" width="1200" height="630" srcset="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg 1200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-900x473.jpg 900w" sizes="(max-width: 1200px) 100vw, 1200px" /></p>
<p>The new 2019.10 branch of the Aimeos e-commerce framework with long term support (LTS) contains lots of helpful improvements. The most important ones are:</p>
<ul>
<li>AI-based translation of texts with DeepL</li>
<li>Customizable product datasets</li>
<li>Manage multiple tax rates</li>
<li>Watermarks for images</li>
<li>Bulk delete and reorder items</li>
<li>Bulk order form for B2B and B2C</li>
<li>Add new columns/properties to managers/items easily</li>
</ul>
<p><span id="more-437"></span></p>
<h2>AI-based text translation</h2>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate.png"><img class="alignright wp-image-461" src="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate-300x105.png" alt="" width="330" height="115" srcset="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate-300x105.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate-100x35.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate-150x52.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate-200x70.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate-450x157.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate-600x209.png 600w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-translate.png 660w" sizes="(max-width: 330px) 100vw, 330px" /></a>Translations based on machine learning algorithms are quite good now. <a href="https://deepl.com">DeepL</a> is the best translation service currently available and it supports all major western languages. To use it, you need a DeepL API account for developers and configure the DeepL base URL and the authentication key:</p>
<div>
<pre>admin/jqadm/api/translate/url = 'https://api.deepl.com/v2'
admin/jqadm/api/translate/key = '&lt;your-deepl-auth-key&gt;'</pre>
<p>Afterwards, you can translate texts of all supported languages to another language using the translate icon in the header of the text panel.</p>
</div>
<h2>Customizable product datasets</h2>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset.png"><img class="alignleft wp-image-465" src="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset-300x105.png" alt="" width="330" height="115" srcset="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset-300x105.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset-100x35.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset-150x52.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset-200x70.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset-450x157.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset-600x209.png 600w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-dataset.png 660w" sizes="(max-width: 330px) 100vw, 330px" /></a>Other shops offer customizable attribute sets where you can define for e.g. a T-Shirt product which attribute types are required (most likely color and size in that case) but Aimeos now offers much more! Instead of attribute sets only, you can create a product template for almost all panels in the admin interface.</p>
<p>For example, a product template can automatically add a required category or related product drop-down, a media download item as well as pre-configured text and price items, stock and so on. Anything that should be entered can be automatically shown by the product template, e.g.</p>
<pre>'admin' =&gt; ['jqadm' =&gt; ['dataset' =&gt; ['product' =&gt; [
    'T-Shirt' =&gt; [
        'characteristic' =&gt; ['variant' =&gt; [['attribute.type' =&gt; 'color'], ['attribute.type' =&gt; 'size']]],
        'catalog' =&gt; ['default' =&gt; [[]]],
        'related' =&gt; ['suggest' =&gt; [[]]],
        'media' =&gt; [['media.type' =&gt; 'download']],
        'price' =&gt; [['price.currencyid' =&gt; 'EUR', 'price.taxrate' =&gt; '19.00']],
        'text' =&gt; [['text.type' =&gt; 'name'], ['text.type' =&gt; 'short', 'text.languageid' =&gt; 'de']],
        'stock' =&gt; [['stock.type' =&gt; 'default']],
    ]]],
],</pre>
<h2>Manage multiple tax rates</h2>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax.png"><img class="alignright wp-image-452" src="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax-300x105.png" alt="" width="330" height="115" srcset="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax-300x105.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax-100x35.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax-150x52.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax-200x70.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax-450x157.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax-600x209.png 600w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multitax.png 660w" sizes="(max-width: 330px) 100vw, 330px" /></a>For countries having multiple tax rates for single products (e.g. state and local tax), you can configure the available tax types in the admin interface including the associated tax rates that will be prefilled.</p>
<p>To define additonal GST and PST tax rates for example, add this settings to your configuration:</p>
<pre>admin/tax/gst = 8.50
admin/tax/pst = 7.25</pre>
<p>Then, the tax types can also be translated using &#8220;taxgst&#8221; and &#8220;taxpst&#8221; in the &#8220;client/code&#8221; translation domain.</p>
<h2>Watermarks for images</h2>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark.png"><img class="alignleft wp-image-468" src="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark-300x300.png" alt="" width="250" height="250" srcset="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark-300x300.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark-150x150.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark-100x100.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark-200x200.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark-450x450.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-watermark.png 500w" sizes="(max-width: 250px) 100vw, 250px" /></a>Protecting your images from being used in other shops or web sites can be useful if you put a lot of work into creating them. Aimeos can combine every preview image with a configured watermark image. This image should be a PNG image with a transparent background and a translucent water mark. For best result use the &#8220;Imagick&#8221; media class:</p>
<div>
<pre>controller/common/media/standard/options/image/watermark = /path/to/image.png
controller/common/media/standard/options/image/name = Imagick</pre>
</div>
<div style="clear: both;"></div>
<h2>Bulk order form for B2B and B2C</h2>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder.png"><img class="size-medium wp-image-474 alignright" src="https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder-300x130.png" alt="" width="300" height="130" srcset="https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder-300x130.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder-100x43.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder-150x65.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder-200x87.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder-450x195.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/10/aimeos-bulkorder.png 600w" sizes="(max-width: 300px) 100vw, 300px" /></a>There&#8217;s a new HTML client component available for adding multiple articles to the basket quickly. This bulk order component is located above the basket by default but can be placed anywhere.</p>
<p>It supports finding products by name as well as by their SKU which makes it equally useful for B2B and B2C customers.</p>
<h2>Bulk delete and reorder items</h2>
<p><img class="wp-image-456 alignleft" src="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete-300x105.png" alt="" width="330" height="115" srcset="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete-300x105.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete-100x35.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete-150x52.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete-200x70.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete-450x157.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete-600x209.png 600w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-multidelete.png 660w" sizes="(max-width: 330px) 100vw, 330px" />Deleteing several items at once in the list view is extremely useful for clean ups. Like seen in various other backends, you can select multiple items by clicking on the check boxes on the left. You can also select all visible items at once in the list and delete them with one click at the cross symbol in the header of the table.</p>
<p>The modal dialog which opens now informs you also about the names of the items that are going to be deleted to avoid deleting items you don&#8217;t want to remove.</p>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes.png"><img class="wp-image-457 alignright" src="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes-300x105.png" alt="" width="330" height="115" srcset="https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes-300x105.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes-100x35.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes-150x52.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes-200x70.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes-450x157.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes-600x209.png 600w, https://aimeos.org/tips/wp-content/uploads/2019/10/blog-reorder-attributes.png 660w" sizes="(max-width: 330px) 100vw, 330px" /></a>Another useful capability for editors is to modify the order of attributes, media, prices and texts in their panels. Therefore, it&#8217;s not necessary any more to remove and add items again to enforce a certain order of the items.</p>
<p>To move items around, simply drag them by using the &#8220;move&#8221; handle (arrowed cross) and drop them at the position where they should be placed. It&#8217;s available for all saved items but not for new ones due to restrictions in the browsers (file uploads are read only for example).</p>
<h2>Extend managers/items easily</h2>
<p>Before 2019.10, you had to extend both, manager and item and overwrite several methods in these classes. By extending the classes it was hard to combine 3rd party extensions and own code. This is gone now! Instead of extending managers and items, you can <strong>stack manager decorators</strong> that care about saving and searching additional column values. Addionally, all items contain <strong>generic get() and set() methods</strong> so there&#8217;s no need to extend the items any more.</p>
<p>For more information, there&#8217;s an article explaining <strong><a href="https://aimeos.org/docs/Developers/Library/Extend_managers_items#Easy_way">how to add own columns</a></strong> easily.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2019-10-lts-release/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2019.07 stable release</title>
		<link>https://aimeos.org/tips/aimeos-2019-07-stable-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2019-07-stable-release/#respond</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Mon, 29 Jul 2019 17:12:49 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Neos]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[SlimPHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=347</guid>

					<description><![CDATA[The most important changes in the Aimeos 2019.07 release are: Responsive images Responsive e-mails with MJML Multiple tax rates per price Customizable XML order export Address management in user profile Responsive images Finally, Aimeos contains support for responsive images of<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2019-07-stable-release/">Read more <span class="screen-reader-text">Aimeos 2019.07 stable release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg"><img class="aligncenter size-full wp-image-287" src="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg" alt="" width="1200" height="630" srcset="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg 1200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-900x473.jpg 900w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></p>
<p>The most important changes in the Aimeos 2019.07 release are:</p>
<ul>
<li>Responsive images</li>
<li>Responsive e-mails with MJML</li>
<li>Multiple tax rates per price</li>
<li>Customizable XML order export</li>
<li>Address management in user profile</li>
</ul>
<p><span id="more-347"></span></p>
<h2>Responsive images</h2>
<p>Finally, Aimeos contains support for responsive images of several sizes using the &#8220;srcset&#8221; attribute supported by the &lt;img&gt; tag in HTML5. By default, the Aimeos media controller creates three different preview images with 240px, 720px and 2160px width for each uploaded or imported and resized image. The original file is left unscaled if not configured otherwise and is used as source if images need to be rescaled to different sizes. In the frontend, those images are used in the list and details views like this:</p>
<pre>&lt;img src="/path/to/preview1" srcset="/path/to/preview1 240w, /path/to/preview2 720w, /path/to/preview3 2160w" /&gt;</pre>
<p>The smallest preview is always used as fallback if the browser doesn&#8217;t support image srcsets (<a href="https://caniuse.com/#search=srcset">like IE 11</a>). You should configure different images sizes depending on your frontend layout and the images widths that are required using the <a href="https://github.com/aimeos/aimeos-core/blob/master/config/controller.php#L31-L43">controller/common/media/standard/previews</a> setting. Aimeos also supports cropping images exactly to the configured size automatically when you add the <em>&#8216;fit&#8217;=&gt;true</em> setting for each preview image configuration.</p>
<h2>Responsive e-mails with MJML</h2>
<p>E-mails in Aimeos have been responsive since the beginning but e-mail clients displayed them very differently due to various built-in limitations in the clients. Now, we use the MJML framework for responsive e-mails that generates HTML code from a custom markup language that looks very similar in all major e-mail clients. The new order confirmation e-mail is now displayed like this in the clients (click for full size):</p>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/07/responsive-email.png"><img class="aligncenter size-thumbnail wp-image-348" src="https://aimeos.org/tips/wp-content/uploads/2019/07/responsive-email-150x150.png" alt="" width="150" height="150" /></a></p>
<p>If you would like to know more about responsive e-mails in Aimeos and how to adapt them to your own project, please have a look into our <a href="https://aimeos.org/tips/responsive-emails-with-mjml-in-aimeos/">Aimeos MJML article</a>.</p>
<h2>Multiple tax rates</h2>
<p>For countries where federal and local taxes apply to product prices, Aimeos now supports multiple tax rates per price item. Those tax rates and their calculated tax values will be listed separately in the basket, checkout and the e-mails:</p>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax.png"><img class="aligncenter wp-image-354" src="https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-300x180.png" alt="" width="600" height="360" srcset="https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-300x180.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-768x461.png 768w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-100x60.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-150x90.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-200x120.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-450x270.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-600x360.png 600w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax-900x540.png 900w, https://aimeos.org/tips/wp-content/uploads/2019/07/aimeos-multiple-tax.png 1000w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p>Each tax rate contains of a code and the tax rate value stored within each price item and the custom tax codes can be translated for the frontend.</p>
<h2>Customizable XML order export</h2>
<p>All who need exports of Aimeos orders including all details in XML format can use the new Aimeos <a href="https://github.com/aimeos/aimeos-core/blob/master/lib/mshoplib/src/MShop/Service/Provider/Delivery/Xml.php"><em>Xml</em> delivery service provider</a>. It generates one local file at the configured location when the order/service/delivery job controller is executed. All orders created since the last run are then part of each file. A stripped example of the XML is:</p>
<pre>&lt;<span class="pl-ent">orders</span>&gt;
    &lt;<span class="pl-ent">orderitem</span>&gt;
        &lt;<span class="pl-ent">invoice</span>&gt;...&lt;/<span class="pl-ent">invoice</span>&gt;
        &lt;base&gt;...&lt;/base&gt;
        &lt;address&gt;
            &lt;addressitem&gt;...&lt;/addressitem&gt;
        &lt;/address&gt;
        &lt;product&gt;
            &lt;productitem&gt;...&lt;/productitem&gt;
        &lt;/product&gt;
        &lt;service&gt;
            &lt;serviceitem&gt;...&lt;/serviceitem&gt;
        &lt;/service&gt;
        &lt;coupon&gt;
            &lt;couponitem&gt;...&lt;/couponitem&gt;
        &lt;/coupon&gt;
    &lt;/<span class="pl-ent">orderitem</span>&gt;
&lt;/<span class="pl-ent">orders</span>&gt;</pre>
<p>The provider uses <a href="https://github.com/aimeos/aimeos-core/tree/master/lib/mshoplib/templates/service/provider/delivery">two templates</a> to generate the XML files so you are able to create a custom XML file by simply overwriting these template files.</p>
<h2>User address management</h2>
<p>Up to now, users have been able to change their addresses only during the checkout process. Their changes are stored automatically and this is still the prefered way because it&#8217;s most user friendly. As alternative, the Aimeos user page can contain the account/<em>profile</em> component which offers managing billing and delivery addresses too:</p>
<p><a href="https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address.png"><img class="aligncenter wp-image-358" src="https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address.png" alt="" width="600" height="384" srcset="https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address.png 703w, https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address-300x192.png 300w, https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address-100x64.png 100w, https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address-150x96.png 150w, https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address-200x128.png 200w, https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address-450x288.png 450w, https://aimeos.org/tips/wp-content/uploads/2019/07/account-profile-address-600x384.png 600w" sizes="(max-width: 600px) 100vw, 600px" /></a></p>
<p>The new release also contains a lot of minor improvements and fixes you can find in the <a href="https://github.com/aimeos">commit history of the repositories</a>. Updated packages are available for <a href="https://aimeos.org/TYPO3">TYPO3</a>, <a href="https://aimeos.org/Laravel">Laravel</a>, <a href="https://aimeos.org/Symfony">Symfony</a>, <a href="https://aimeos.org/SlimPHP">SlimPHP</a> and <a href="https://aimeos.org/Flow">Flow</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2019-07-stable-release/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Aimeos 2019.04 stable release</title>
		<link>https://aimeos.org/tips/aimeos-2019-04-stable-release/</link>
					<comments>https://aimeos.org/tips/aimeos-2019-04-stable-release/#respond</comments>
		
		<dc:creator><![CDATA[aimeos]]></dc:creator>
		<pubDate>Thu, 02 May 2019 08:22:07 +0000</pubDate>
				<category><![CDATA[Laravel]]></category>
		<category><![CDATA[Neos]]></category>
		<category><![CDATA[Releases]]></category>
		<category><![CDATA[SlimPHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[TYPO3]]></category>
		<guid isPermaLink="false">https://aimeos.org/tips/?p=283</guid>

					<description><![CDATA[&#160; The stable 2019.04 release contains some major improvements: Improved core APIs and rewritten frontend controllers XML importer for attributes, categories, customers, products and suppliers Increased performance for complex queries More SEO friendly URLs Improved APIs The Aimeos core already<span class="ellipsis">&#8230;</span><div class="read-more"><a href="https://aimeos.org/tips/aimeos-2019-04-stable-release/">Read more <span class="screen-reader-text">Aimeos 2019.04 stable release</span><span class="meta-nav"> &#8250;</span></a></div><!-- end of .read-more -->]]></description>
										<content:encoded><![CDATA[<h2><a href="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg"><img class="aligncenter size-full wp-image-287" src="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg" alt="" width="1200" height="630" srcset="https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px.jpg 1200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-300x158.jpg 300w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-768x403.jpg 768w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-1024x538.jpg 1024w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-100x53.jpg 100w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-150x79.jpg 150w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-200x105.jpg 200w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-450x236.jpg 450w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-600x315.jpg 600w, https://aimeos.org/tips/wp-content/uploads/2019/04/aimeos-release-grafik_1200x630px-900x473.jpg 900w" sizes="(max-width: 1200px) 100vw, 1200px" /></a></h2>
<p>&nbsp;</p>
<p>The stable 2019.04 release contains some major improvements:</p>
<ul>
<li>Improved core APIs and rewritten frontend controllers</li>
<li>XML importer for attributes, categories, customers, products and suppliers</li>
<li>Increased performance for complex queries</li>
<li>More SEO friendly URLs</li>
</ul>
<p><span id="more-283"></span></p>
<h2>Improved APIs</h2>
<p>The Aimeos core already offered an easy to learn API for working with managers, items and providers. All methods are now supporting fluent interfaces if possible so method calls can be chained like:</p>
<pre>$item = $manager-&gt;createItem()-&gt;fromArray( $map )
    -&gt;setType( 'default' )-&gt;addPropertyItem( $propItem );</pre>
<p>Additionally, the frontend controller API for working with the shop objects efficiently in the HTML clients and the JSON REST API has been completely overhauled. All objects contain simple, fluent methods that can be concatenated like in the core library. Implementing your own product list in the frontend is now only a matter of a few easy to understand calls:</p>
<pre>$products = \Aimeos\Controller\Frontend::create( $context, 'product' )
   -&gt;uses( ['text', 'price', 'media' )-&gt;category( 123 )-&gt;text( 'sneaker' )
   -&gt;sort( 'name' )-&gt;slice( 0, 48 )-&gt;search();</pre>
<p>This statement would retrieve the first 48 products with texts, prices and images that are in category &#8220;123&#8221; and contain the text &#8220;sneaker&#8221; sorted by their names. In Laravel, facades simplify working with the frontend controller even more:</p>
<pre>$products = Product::uses( ['text', 'price', 'media' )-&gt;category( 123 )
   -&gt;text( 'sneaker' )-&gt;sort( 'name' )-&gt;slice( 0, 48 )-&gt;search();</pre>
<h2>XML importer</h2>
<p>It&#8217;s now possible to import attributes, categories, customers, products and suppliers using Aimeos XML files. They are as flexible as the Aimeos data structures so you can import all items in a document oriented way. A simple example for a product XML import file would be:</p>
<pre>&lt;products&gt;
    &lt;product ref="test-article"&gt;
       &lt;product.type&gt;event&lt;/product.type&gt;
       &lt;product.code&gt;test-article&lt;/product.code&gt;
       &lt;product.label&gt;Test event&lt;/product.label&gt;
       &lt;product.datestart&gt;2000-01-01T10:00:00&lt;/product.datestart&gt;
       &lt;lists&gt;
          &lt;text&gt;&lt;textitem&gt;...&lt;/textitem&gt;&lt;/text&gt;
          &lt;price&gt;&lt;priceitem&gt;...&lt;/priceitem&gt;&lt;/price&gt;
          &lt;media&gt;&lt;mediaitem&gt;...&lt;/mediaitem&gt;&lt;/media&gt;
       &lt;/lists&gt;
    &lt;/product&gt;
&lt;/products&gt;</pre>
<p>The product XML export job produces the same XML format so you can share data between different Aimeos instances too.</p>
<h2>Performance</h2>
<p>Aimeos has gotten faster once more. Complex queries which ask for entries that reference items from other domains or have properties of a specific value are now lightning fast in all DBMS when using the *:has and *:prop search functions. To fetch all products which reference a specific attribute use:</p>
<pre>$search = $manager-&gt;createSearch();
$func = $search-&gt;createFunction( 'product:has', ['attribute', 'default', 123 );
$search-&gt;setConditions( $search-&gt;combine( '!=', $func, null ) );
$products = $manager-&gt;searchItems();</pre>
<p>To get notfied about queries which take longer than one second, a monitoring similar to the MySQL slowlog is now active. Furthermore, using utf8mb4 as charset in MySQL doesn&#8217;t have a performance drawback any more so it&#8217;s now used by default. Existing setups are migrated towards this charset if possible (requires MySQL &gt;= 5.7.8).</p>
<h2>SEO friendly URLs</h2>
<p>In the past, Aimeos required the product ID to be part of the URL. Due to the simplifed index for product texts which contains the product URL name and due to optimized routes, the URLs of all detail pages can now look like</p>
<pre>https://shop.com/My_cool_product</pre>
<p>The product name in the URL can be localized for each language of corse.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://aimeos.org/tips/aimeos-2019-04-stable-release/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
