Giter Site home page Giter Site logo

aimeos / aimeos-typo3 Goto Github PK

View Code? Open in Web Editor NEW
222.0 13.0 741.0 5.82 MB

TYPO3 e-commerce extension for ultra fast online shops, scalable marketplaces, complex B2B applications and #gigacommerce

Home Page: https://aimeos.org/TYPO3

License: GNU General Public License v3.0

PHP 56.92% HTML 0.93% CSS 26.64% JavaScript 15.51%
aimeos e-commerce ecommerce shop b2b marketplace php performance json-api typo3-extension typo3 ecommerce-platform vue vuejs seo

aimeos-typo3's Introduction

Aimeos logo

Aimeos TYPO3 extension

Total Downloads Scrutinizer Code Quality License

⭐ Star us on GitHub — it motivates us a lot!

Aimeos is THE professional, full-featured and high performance e-commerce extension for TYPO3! You can install it in your existing TYPO3 web site within 5 minutes and can adapt, extend, overwrite and customize anything to your needs.

aimeos-frontend

Table Of Content

Installation

This document is for the latest Aimeos TYPO3 22.10 release and later.

  • LTS release: 23.10 (TYPO3 12 LTS)
  • Old LTS release: 22.10 (TYPO3 11 LTS)

Composer

Note: composer 2.1+ is required!

The latest TYPO3 version can be installed via composer. This is especially useful, if you want to create new TYPO3 installations automatically or play with the latest code. You need to install the composer package first, if it isn't already available:

php -r "readfile('https://getcomposer.org/installer');" | php -- --filename=composer

To install the TYPO3 base distribution first, execute this command:

composer create-project typo3/cms-base-distribution myshop
# or install a specific TYPO3 version:
composer create-project "typo3/cms-base-distribution:^12" myshop

It will install TYPO3 into the ./myshop/ directory. Change into the directory and install TYPO3 as usual:

cd ./myshop
touch public/FIRST_INSTALL

Open the TYPO3 URL in your browser and follow the setup steps. Afterwards, install the Aimeos extension using:

composer req -W aimeos/aimeos-typo3:~23.7

If composer complains that one or more packages can't be installed because the required minimum stability isn't met, add this to your composer.json:

"minimum-stability": "dev",
"prefer-stable": true,

If you want a more or less working installation out of the box for new installations, you can install the Bootstrap package too:

composer req bk2k/bootstrap-package

Note: Remember to create a root page and a root template, which includes the Bootstrap package templates! (See also below.)

Finally, depending on your TYPO3 version, run the following commands from your installation directory:

For TYPO3 11+:

php ./vendor/bin/typo3 extension:setup
php ./vendor/bin/typo3 aimeos:setup --option=setup/default/demo:1

If you don't want to add the Aimeos demo data, you should remove --option=setup/default/demo:1 from the Aimeos setup command.

For TYPO3 10:

php ./vendor/bin/typo3 extension:activate scheduler
php ./vendor/bin/typo3 extension:activate aimeos

If you experience any errors with the database, please check the Database Setup section below.

Please keep on reading below the "TER Extension" installation section!

DDev

Note: Installation instructions for TYPO3 with ddev or Colima can be found here: TYPO3 with ddev or colima

TER Extension

If you want to install Aimeos into a traditionally installed TYPO3 ("legacy installation"), the Aimeos extension from the TER is recommended. You can download and install it directly from the Extension Manager of your TYPO3 instance.

  • Log into the TYPO3 backend
  • Click on "Admin Tools::Extensions" in the left navigation
  • Click the icon with the little plus sign left from the Aimeos list entry

Install Aimeos TYPO3 extension

Afterwards, you have to execute the update script of the extension to create the required database structure:

  • Click on "Admin Tools::Upgrade"
  • Click "Run Upgrade Wizard" in the "Upgrade Wizard" tile
  • Click "Execute"

Execute update script

Aimeos Distribution

For new TYPO3 installations, there is a 1-click Aimeos distribution available, too. Choose the Aimeos distribution from the list of available distributions in the Extension Manager and you will get a completely set up shop system including demo data for a quick start.

TYPO3 Setup

Setup TYPO3 by creating a FIRST_INSTALL file in the ./public directory:

touch public/FIRST_INSTALL

Open the URL of your installation in the browser and follow the steps in the TYPO3 setup scripts.

Database Setup

If you use MySQL < 5.7.8, you have to use utf8 and utf8_unicode_ci instead because those MySQL versions can't handle the long indexes created by utf8mb4 (up to four bytes per character) and you will get errors like

1071 Specified key was too long; max key length is 767 bytes

To avoid that, change your database settings in your ./typo3conf/LocalConfiguration.php to:

    'DB' => [
        'Connections' => [
            'Default' => [
                'tableoptions' => [
                    'charset' => 'utf8',
                    'collate' => 'utf8_unicode_ci',
                ],
                // ...
            ],
        ],
    ],

Security

Since TYPO3 9.5.14+ implements SameSite cookie handling and restricts when browsers send cookies to your site. This is a problem when customers are redirected from external payment provider domain. Then, there's no session available on the confirmation page. To circumvent that problem, you need to set the configuration option cookieSameSite to none in your ./typo3conf/LocalConfiguration.php:

    'FE' => [
        'cookieSameSite' => 'none'
    ]

Site Setup

TYPO3 10+ requires a site configuration which you have to add in "Site Management" > "Sites" available in the left navigation. When creating a root page (a page with a globe icon), a basic site configuration is automatically created (see below at Go to the Import View).

Page Setup

Download the Aimeos Page Tree t3d file

The page setup for an Aimeos web shop is easy, if you import the example page tree for TYPO3 10/11. You can download the version you need from here:

Note: The Aimeos layout expects Bootstrap providing the grid layout!

In order to upload and install the file, follow the following steps:

Go to the Import View

Note: It is recommended to import the Aimeos page tree to a page that is defined as "root page". To create a root page, simply create a new page and, in the "Edit page properties", activate the "Use as Root Page" option under "Behaviour". The icon of the root page will change to a globe. This will also create a basic site configuration. Don't forget to also create a typoscript root template and include the bootstrap templates with it!

Create a root page

  • In "Web::Page", right-click on the root page (the one with the globe)
  • Click on "More options..."
  • Click on "Import"

Go to the import view

Upload the page tree file

  • In the page import dialog
  • Select the "Upload" tab (2nd one)
  • Click on the "Select" dialog
  • Choose the T3D file you've downloaded
  • Press the "Upload files" button

Upload the page tree file

Import the page tree

  • In Import / Export view
  • Select the uploaded file from the drop-down menu
  • Click on the "Preview" button
  • The pages that will be imported are shown below
  • Click on the "Import" button that has appeared
  • Confirm to import the pages

Import the uploaded page tree file

Now you have a new page "Shop" in your page tree including all required sub-pages.

SEO-friendly URLs

TYPO3 9.5 and later can create SEO friendly URLs if you add the rules to the site config: https://aimeos.org/docs/latest/typo3/setup/#seo-urls

License

The Aimeos TYPO3 extension is licensed under the terms of the GPL Open Source license and is available for free.

Links

aimeos-typo3's People

Contributors

aimeos avatar andreaskienast avatar danielsiepmann avatar davidhedden avatar georgringer avatar gilbertsoft avatar guelzow avatar ichhabrecht avatar jonaseberle avatar metalicss avatar mterwei avatar nollm avatar nvindice avatar pdanzinger avatar rhabacker avatar rowild avatar scrutinizer-auto-fixer avatar somebdyelse avatar stephankellermayr avatar vanillajonathan avatar yodaxx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aimeos-typo3's Issues

Catalog detail page shows Product item with ID "" not found

It seem the product ID is not given to the detail page, it always shows 'Product item with ID "" not found'. I've placed the plugin there and made the relations to requiered fields (favorite and watched products), but did not set anything for "Record Storage Page". Hope thats ok because also the product-list view can find all products from the shop without any additional configuration for the storage.

Apache 2.4.23 (Windows)
PHP 7.2.6
TYPO3 8.7.15
Aimeos 18.4.1

throwPageNotFoundExceptionIfActionCantBeResolved and skipDefaultArguments

If using throwPageNotFoundExceptionIfActionCantBeResolved = 1

plugin.tx_aimeos { mvc { throwPageNotFoundExceptionIfActionCantBeResolved = 1 } }

then the detail view results in an exception.

The reason is that the controller parameter has "catalog" as value but it should be "Catalog" instead. There probably exist other scenarios and as one can set this setting per extension it isn't that problematic. However, if I modify the default option and don't override the value manually it results in an exception.

[bug][2018.4.0][Backend]Unable to create Locales in the backend.

Hi everyone.

I'm not sure, if this is the right bug tracker to report this one.

When

  • creating a new site
  • and then trying to create a new Locales combination

the backend forgets for which environment you want to create these, resulting in a disabled form.

Our setup:
TYPO3 8.7.10
TYPO3 Aimeos extension 18.4.0

What is happening in the Code:
It took a little bit to track this one.
https://github.com/aimeos/aimeos-core/blob/master/lib/mshoplib/src/MShop/Locale/Manager/Standard.php#L547
Tries to load the Locales from the DB and finds nothing. It then throws an exception.

The exception then gets caught in
https://github.com/aimeos/aimeos-typo3/blob/master/Classes/Base/Locale.php#L88
creating a new, but empty Item.

Then the template file locale/item-standard.php relies on the loaded Locales, but finds nothing.
The form is then disabled, hidden fields do not get set.
Trying to save the form results in a SQL error.

Our workaround so far:
The Locale\Manager returns a false in
https://github.com/aimeos/aimeos-core/blob/master/lib/mshoplib/src/MShop/Locale/Manager/Standard.php#L591
when no Locales where found at all.
With a

$row = array();
$row['locale.siteid'] = $siteId;
return $this->createItemBase( $row, $siteItem, $sitePath, $siteSubTree );

we are at least able to give feedback about the current site to the backend, so we can create the new Locales.

Tobi

reset of UriBuilder and getContext in plugin controller

Setup:
A Aimeos view (\Aimeos\Aimeos\Base\View) is constructed inside the plugin controller (\Aimeos\Aimeos\Controller\AbstractController) through getContext. This sets the prefix "ai" from the given uriBuilder.

Problem:
If the view helper \Aimeos\MW\View\Helper\Url\Typo3 is then used to generate a URL, it resets the UriBuilder completely.
If a new view is constructed afterwards for example through another call of getContext this will again try to set the prefix from the uriBuilder. But the uriBuilder no longer has a prefix as reset was called earlier.

Problems with aimeos email task

Hi, I've installed typo3 7.0.2, aimeos 2.3.1, scheduler and static_info_tables. The scheduler test task and aimeos:jobs:run works. But I've got problems with aimeos:jobs:email:
PHP Catchable fatal error: Argument 1 passed to Aimeos\Aimeos\Scheduler\Base::execute() must be of the type array, object given, called in /www/htdocs/.../typo3conf/ext/aimeos/Classes/Command/JobsCommandController.php on line 93 and defined in /www/htdocs/.../typo3conf/ext/aimeos/Classes/Scheduler/Base.php on line 30
Best regards!

Root catalog deleted, then no catalog creation possible

The catalog tree system seems to be quite buggy. My structure was:

  • Root
    --- Catalog 1
    ------ Sub Category
    ------ Sub Category
    ------ Sub Category
    --- Catalog 2

I moved all Subcategories to Root, Catalog 1 remained as the selected category. Since I wanted to delete this category, I chose the minus button next to the "Find category" search box - and ALL CATEGORIES where gone!!!

After that, i tried to create a new root category again, but got this error:
No node with ID "0" found, /Volumes/II/_SITES/typo3-8.7/typo3conf/ext/aimeos/Resources/Libraries/aimeos/aimeos-core/lib/mwlib/src/MW/Tree/Manager/DBNestedSet.php:782

This is happening while playing around with a clean standard installation of the aimeos_dist 17.10 on TYPO3 8.7

Don't use no_cache param

I got an answer from realurl: dmitryd/typo3-realurl#404

So the Typo3.php with the link builder access should be rewritten not longer using the no_cache option. As I know actions are already defined as not cachable as Dimitry wrote.

I will continue investigation on this issue...

Question: Add "Save & Close" and "Add" options?

In some sections like the catalog area it is not possible to select a "save & close" option. I don't know, if there is a specific reason for that; if not, is there any chance to add this option?

Also, if I would like to add a subcategory to a selected category, there is no "add" option anywhere. Currently it is required to select "Save & new", which is ... strange... The enclosed image shows that the category "Locations" is selected, but I have no "regular" possibility to add a subcategory.

screen shot 2018-01-29 at 13 49 57

[FEATURE] add cachable Catalog -> list plugin

In my aimeos Frontend my shop doesn't use any filter / sort or pagination for the products per category.
It would be nice for those lists to be cachable as they don't change content and the availability state is loaded via Javascript anyway.
I think a second plugin that is "cachable" might be the best solution, then one can define per page.
The plugin is cached anyway but that way it would be cached by TYPO3 too and could be part of the page cache.

Actually, if you are using TYPO3 linkbuilder for sorting / pagination links than it should also be cachable for those links as it should add a correct cHash.
The only thing then that would require the uncachable plugin would be a search funktion.

Language is incorrect when switching from dashboard directly to products

If one switches from dashboard directly to products without doing anything else, then the language is always 'en' because the link to 'products' includes the lang parameter and the lang parameter wasn't set when calling the dashboard.

If one goes first to expert mode and then back to simple mode the lang parameter seems to be set and therefore the switch to products works with the correct language.

Simplest solution is probably to modify "ai-admin-jqadm/admin/jqadm/templates/common/page-default.php"
to use instead of:
$params['lang'] = $this->param( 'lang', 'en' );

$params['lang'] = $this->param( 'lang', null );

Or to set the lang parameter when creating the View.

IE 11 and Product -> Variants is not working

Hy there

We recognised that the variants function doesn't work at IE 11 (on every system).

bildschirmfoto 2018-08-06 um 15 49 43

Has the support for IE 11 been ended or is there a plan for how long the IE 11 is supported?

Thanks for your Feedback.

Salutation not saved when company

If I newly create a user during checkout, with the salutation company, then the salutation is not saved. I thought maybe i missconfigured something, but I can recreate this behaviour with the aimeos_dist out of the box.

Aimeos 16.10.1
TYPO3 7.6.14

Versioning of the extension is wrong

In the latest emconf.php (e381b5f) I find this:
line 15:
'version' => '17.1.0',

The TER in TYPO3 calls it:
Version 16.10.4 Stable

And the last one I've installed from TYPO3 TER is... 17.2.1

We're talking about the same version, I believe. I had issues before with versions, last week as you might recall. Perhaps it's connected.

If I see it correctly, then please update and maintain proper versioning. Thanks!

[BUG] Installation with Composer fails when setting up symlinks

When installing Aimeos with Composer under Windows 8, the installation fails with:

  [ErrorException]
  symlink(): No such file or directory

The problem is the relative path (check http://de2.php.net/manual/en/function.symlink.php#97605) in https://github.com/aimeos/aimeos-typo3/blob/master/Classes/Custom/Composer.php#L51

which can be fixed for example by using an absolute path with realpath() and the __DIR__ magic constant:

symlink( realpath(__DIR__ . '/../../../../../../' . $path), $t3path . '/Resources/Private/Extensions' );

JSON & plain typeNums might not work correctly (e.g. fluid styled content)

Those two plugins might fail to produce the correct result, e.g. it adds a


to the plugins as that is added by default and this change:

[globalVar = TSFE:type=191351524][globalVar = TSFE:type=191351525]
tt_content.stdWrap >
[end]

might not be enough. E.g. with fluid_styled_content the wrapping div is added in the Fluid Template.

Why not just execute the corresponding plugins directly by using a typeNum? That way a separate page for stock etc. wouldn't be necessary either.

If not, another solution would be to overwrite the template of fluid_styled_content if that extension is used and the typeNums are set.

Or to create a own TypoScript that just executes the corresponding plugin of the page (only works if the page only contains plugins).

Update script produces error while creating foreign key

On current master:

From the update script called from the Typo3 Extension Manager:

  Using schema from customer.php                                      
    Checking table "mshop_customer":                                  done
    Checking table "mshop_customer_address":                          done
    Checking table "mshop_customer_list_type":                        done
    Checking table "mshop_customer_list":                             
An exception occurred while executing 'ALTER TABLE mshop_customer_list ADD CONSTRAINT fk_mscusli_pid FOREIGN KEY (parentid) REFERENCES mshop_customer (id) ON UPDATE CASCADE ON DELETE CASCADE':

SQLSTATE[HY000]: General error: 1005 Can't create table 'playground.#sql-7d5_22f8' (errno: 121)
#0 /var/www/playground.schempp-hirth.com/vendor/aimeos/aimeos-core/lib/mwlib/src/MW/Setup/Task/Base.php(141): Aimeos\MW\DB\Statement\DBAL\Simple->execute()

The funny thing here is the table name. I don't know much about Doctrine but this doesn't look right.

A workaround to get the rest of the column updates currently is to comment out the ->addForeignKeyConstraint() calls in ./vendor/aimeos/aimeos-core/lib/mshoplib/setup/default/schema/customer.php temporarily.

Composer post-install / post-update script failure after aimeos/ai-admin-extadm removal

MY composure update fails with the following error message:

Installing Aimeos public files from ExtJS admin
Script Aimeos\Aimeos\Custom\Composer::install handling the post-update-cmd event terminated with an exception


  [UnexpectedValueException]
  RecursiveDirectoryIterator::__construct(ext/ai-admin-extadm//admin/extjs/resources): failed to open dir: No such file or directory

A fresh test install with a composer.json from the README.md results in the same error.

Realurl autoconfig expects ai[c_step]

The realurl autocnofig expects ai[c_step] to exist, however, that isn't necessarily the case,
e.g. during the payment process the success-url doesn'T include it which will result in "//" and as the payment provider redirects there it might get lost altogether.

config.additionalHeaders as string is deprecated with 7.6 (removed with 8)

The additionalHeaders string is deprecated with 7.6 it should be an array with numeric indices now.

However, 6.2 still requires it as string but I think the aimeos-typo3 master / 2017 version can be moved to 7.6 only anyway.

However, if backwards compatibilty is wanted, it is possible to use compatVersion TypoScript condition.

Scheduler\Base fails to inject contentObject into UriBuilder, crash when creating typolink via cli_dispatch

Currently, trying to create a typolink in a "cli_dispatch.phpsh"-environment causes a null pointer exception on $uriBuilder->contentObject.

\Aimeos\Aimeos\Scheduler\Base::getUriBuilder() creates a UriBuilder and injects a ConfigurationManager containing a content object. However, the content object is only ever copied into the UriBuilder itself on UriBuilder::initializeObject(), which is only called on object creation (i.e. before aimeos injects the configuration manager).

Calling the scheduler via the TYPO3 backend works fine, presumably because the backend environment automatically creates a content object.

Adding a call to $uriBuilder->initializeObject() in Scheduler\Base::getUriBuilder() worked for me, but I'm not sure about regressions.

Tested with TYPO3 7.6.16 and aimeos-typo3 2017.03.x-dev
Stack trace for reference:

#0  Aimeos\Aimeos\Base\View::get() called at [{ TYPO3 root }\web\typo3conf\ext\aimeos\Classes\Base.php:204]
#1  Aimeos\Aimeos\Base::getView() called at [{ TYPO3 root }\web\typo3conf\ext\aimeos\Classes\Scheduler\Base.php:83]
#2  Aimeos\Aimeos\Scheduler\Base::getContext() called at [{ TYPO3 root }\web\typo3conf\ext\aimeos\Classes\Scheduler\Base.php:34]
#3  Aimeos\Aimeos\Scheduler\Base::execute() called at [{ TYPO3 root }\web\typo3conf\ext\aimeos\Classes\Scheduler\Task\Typo6.php:42]
#4  Aimeos\Aimeos\Scheduler\Task\Typo6->execute() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\sysext\scheduler\Classes\Scheduler.php:158]
#5  TYPO3\CMS\Scheduler\Scheduler->executeTask() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\sysext\scheduler\Classes\Controller\SchedulerCliController.php:145]
#6  TYPO3\CMS\Scheduler\Controller\SchedulerCliController->loopTasks() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\sysext\scheduler\Classes\Controller\SchedulerCliController.php:99]
#7  TYPO3\CMS\Scheduler\Controller\SchedulerCliController->run() called at [{ TYPO3 root }\web\typo3temp\Cache\Code\cache_core\ext_localconf_2f843201ce16b0560cff44f7ecbba89aeedc2e96.php:1056]
#8  TYPO3\CMS\Core\Cache\Backend\SimpleFileBackend->{closure}()
#9  call_user_func() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\sysext\backend\Classes\Console\CliRequestHandler.php:69]
#10 TYPO3\CMS\Backend\Console\CliRequestHandler->handleRequest() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\sysext\core\Classes\Core\Bootstrap.php:302]
#11 TYPO3\CMS\Core\Core\Bootstrap->handleRequest() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\sysext\backend\Classes\Console\Application.php:73]
#12 TYPO3\CMS\Backend\Console\Application->run() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\cli_dispatch.phpsh:26]
#13 {closure}()
#14 call_user_func() called at [{ TYPO3 root }\vendor\typo3\cms\typo3\cli_dispatch.phpsh:27]

Emails

I'm currently working on the emails aimeos is sending and here are some questions and problems with it:

  • special chars e.g. umlauts are not correctly shown, I can't find an encoding tag in the header. Compared to other html emails I have received there is always a encoding defined
  • why is the css included in the body and not the header?
  • no link is made on terms and conditions on the bottom

Experience with RealUrl 2 and Boostrap 7

Because RealUrl 1.x is not longer supported, I started testing on the newest version of RealUrl and Boostrap and like to share my experience here. I will continue to add new findings...

Last update description of RealUrl:

WARNING: version 1.x is not supported anymore! Switch to 2.x now! // Two fixes in this upload: (1) compatibility TYPO3-CORE-SA-2016-022, (2) images do not show up in TYPO3 BE under 7.6.

  • the available languages needs to set correctly (page.10.dataProcessing.40.special.value and popup..), if not system breaks with a exception
  • bootstrap 7.1 enables the settings of the languages directly in the constant editor
  • header / navigation and footer / meta section are reworked compleetly, so addaptions in the css must be converted to get the same results

Wrong help text with language label

In this folder:
Resources/Private/Extensions/ai-admin-jqadm/admin/jqadm/templates/
these files have wrong help texts assigned to the language selection:
attribute/item-image-standard.php
attribute/item-text-standard.php
catalog/item-image-standard.php
catalog/item-text-standard.php
product/item-text-standard.php

(There might be more files; I'll update as I find them.)

Currently it read:

<?= $enc->html( $this->translate( 'admin', 'Images will only be shown for that language, useful if the image contains text or is language sepecific' ) ); ?>

It probably should be:
"Language (required)"?

If you could confirm that, I could prepare a PR, if that is all right with you - just let me know! Thanks!

Problem: automatically sending mails with scheduler/zendramework error

Hi!
The shop is working fine, but a scheduler-task makes problems.
If I manually start the task (Order payment related E-Mail...) I get the following error (shortend):

PHP Warning: Illegal offset type in .../typo3conf/ext/aimeos/Resources/Libraries/zendframework/zend-i18n/src/Translator/Translator.php line 441

On line 441 is the following code:
if (isset($this->messages[$textDomain][$locale][$message])) {
return $this->messages[$textDomain][$locale][$message];
}
If I deactived the code, the whole shop is not translated into german, but the Scheduler-Task works.

The same task does not start automatically. Maybe because of the mentioned error ?
It seems that the language setting of typo3 is the problem? How can I solve it?

Best wishes
Marcus

Wrong additionalHeaders code in TypoScript setup.txt

Change
additionalHeaders.type = Content-type:application/javascript
into
additionalHeaders = Content-type:application/javascript

and
additionalHeaders.type = Content-type:text/plain
into
additionalHeaders = Content-type:text/plain

Remove superfluous autoloading

Currently, ext_localconf.php requires Resources/Libraries/autoload.php. The same autoload definition is catched by TYPO3's composer autoloader and placed in typo3temp/autoload.

Please remove the require call as it's superfluous and also makes class overriding impossible.

Installation creates absolute symlink

When using the composer.json exactly as indicated in the Readme, the resulting installation correctly puts typo3 in the htdocs subfolder under the composer.json. However, the ext folder is linked to by the absolute symbolic link htdocs/typo3conf/ext/aimeos/Resources/Private/Extensions (e.g. /home/myuser/myproject/ext)

Since the symbolic link is absolute, and relative to the developer's machine, a virtual environment, such as a docker container or vagrant machine attempting to run aimeos will fail with cryptic error messages such as Cannot find /var/www/html/typo3conf/ext/aimeos/Resources/Private/Extensions — that file does exist, but it's a symlink pointing to /home/myuser/myproject/ext, which does not exist in the virtualised container.

Unfortunately, Aimeos\Aimeos\Custom\Composer::install which is executed in composer.json:scripts/post-update-cmd expects said file to be a symlink. Merely moving ext to htdocs/typo3conf/ext/aimeos/Resources/Private/Extensions will cause that script to fail:

Script Aimeos\Aimeos\Custom\Composer::install handling the post-update-cmd event terminated with an exception

                                                                                                          
  [ErrorException]                                                                                        
  unlink(/home/aleks/src/designkatalog/data/typo4/html/typo3conf/ext/aimeos/Resources/Private/Extensions  
  ): Is a directory 

I suggest making the symlink relative.

Note that the symlinks index.php and typo3 created by composer are, in fact, relative (probably for the same reason.)

2017.02 Scheduler Email broken

Since the new update the scheduler for emails is broken. I get the following message at the scheduler:

Die Ausführung von Task "Planer für Aimeos Shop E-Mails (aimeos)" ist fehlgeschlagen mit folgender Meldung: PHP Warning: Creating default object from empty value in /var/www/clients/client15/web7/private/typo3_src-7.6.15/typo3/sysext/core/Classes/TypoScript/TemplateService.php line 538

I compared the 2 versions at github but unfortunately I was not able to find the bug quickly because it has too much changed at the scheduler source code and at the logs was nothing to find ;-(

A downgrade to 2017.01 solved the problem.

Typo3 Version 7.2

When i open the the backend module i have the following error:

Uncaught TYPO3 Exception
#1: PHP Warning: file_exists(): open_basedir restriction in effect. File(/usr/share/php//Aimeos/Aimeos/View/Admin/IndexHtml.php) is not within the allowed path(s): (/var/customers/webs/ag/:/var/customers/tmp/ag/:/usr/share/php/:/usr/share/php5/:/tmp/) in /var/customers/webs/ag/typo3conf/ext/aimeos/Resources/Libraries/arcavias/arcavias-core/Arcavias.php line 93 (More information)

TYPO3\CMS\Core\Error\Exception thrown in file
/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/core/Classes/Error/ErrorHandler.php in line 102.

17 TYPO3\CMS\Core\Error\ErrorHandler::handleError(2, "file_exists(): open_basedir restriction in effect.…ugustiner/:/usr/share/php/:/usr/share/php5/:/tmp/)", "/var/customers/webs/ag/typo3conf/ext/aimeo…rces/Libraries/arcavias/arcavias-core/Arcavias.php", 93, array)
16 file_exists("/usr/share/php//Aimeos/Aimeos/View/Admin/IndexHtml.php")

/var/customers/webs/ag/typo3conf/ext/aimeos/Resources/Libraries/arcavias/arcavias-core/Arcavias.php:
00091:    $file = $path . DIRECTORY_SEPARATOR . $fileName;
00092: 
00093:    if( file_exists( $file ) === true && ( include_once $file ) !== false ) {
00094:     return true;
00095:    }

15 Arcavias::autoload("Aimeos\Aimeos\View\Admin\IndexHtml")
14 spl_autoload_call("Aimeos\Aimeos\View\Admin\IndexHtml")
13 class_exists("Aimeos\Aimeos\View\Admin\IndexHtml")

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:
00441:   $format = $this->request->getFormat();
00442:   $viewObjectName = str_replace('@format', ucfirst($format), $possibleViewName);
00443:   if (class_exists($viewObjectName) === FALSE) {
00444:    $viewObjectName = str_replace('@format', '', $possibleViewName);
00445:   }

12 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::resolveViewObjectName()

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:
00311:   */
00312:  protected function resolveView() {
00313:   $viewObjectName = $this->resolveViewObjectName();
00314:   if ($viewObjectName !== FALSE) {
00315:    /** @var $view ViewInterface */

11 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::resolveView()

/var/customers/webs/ag/typo3conf/ext/aimeos/Classes/Controller/AdminController.php:
00131:  protected function resolveView()
00132:  {
00133:   return \TYPO3\CMS\Extbase\Mvc\Controller\ActionController::resolveView();
00134:  }
00135: 

10 Aimeos\Aimeos\Controller\AdminController::resolveView()

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php:
00148:   $this->mapRequestArgumentsToControllerArguments();
00149:   $this->controllerContext = $this->buildControllerContext();
00150:   $this->view = $this->resolveView();
00151:   if ($this->view !== NULL) {
00152:    $this->initializeView($this->view);

9 TYPO3\CMS\Extbase\Mvc\Controller\ActionController::processRequest(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Mvc/Dispatcher.php:
00068:    $controller = $this->resolveController($request);
00069:    try {
00070:     $controller->processRequest($request, $response);
00071:    } catch (\TYPO3\CMS\Extbase\Mvc\Exception\StopActionException $ignoredException) {
00072:    }

8 TYPO3\CMS\Extbase\Mvc\Dispatcher::dispatch(TYPO3\CMS\Extbase\Mvc\Web\Request, TYPO3\CMS\Extbase\Mvc\Web\Response)

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Mvc/Web/BackendRequestHandler.php:
00029:   /** @var $response \TYPO3\CMS\Extbase\Mvc\ResponseInterface */
00030:   $response = $this->objectManager->get(\TYPO3\CMS\Extbase\Mvc\Web\Response::class);
00031:   $this->dispatcher->dispatch($request, $response);
00032:   return $response;
00033:  }

7 TYPO3\CMS\Extbase\Mvc\Web\BackendRequestHandler::handleRequest()

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Core/Bootstrap.php:
00194:   $requestHandler = $requestHandlerResolver->resolveRequestHandler();
00195: 
00196:   $response = $requestHandler->handleRequest();
00197:   // If response is NULL after handling the request we need to stop
00198:   // This happens for instance, when a USER object was converted to a USER_INT

6 TYPO3\CMS\Extbase\Core\Bootstrap::handleRequest()

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Core/Bootstrap.php:
00183:  public function run($content, $configuration) {
00184:   $this->initialize($configuration);
00185:   return $this->handleRequest();
00186:  }
00187: 

5 TYPO3\CMS\Extbase\Core\Bootstrap::run("", array)

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/extbase/Classes/Core/ModuleRunner.php:
00065: 
00066:   $bootstrap = $this->objectManager->get(\TYPO3\CMS\Extbase\Core\BootstrapInterface::class);
00067:   $content = $bootstrap->run('', $configuration);
00068:   print $content;
00069: 

4 TYPO3\CMS\Extbase\Core\ModuleRunner::callModule("web_AimeosTxAimeosAdmin")

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/backend/Classes/BackendModuleRequestHandler.php:
00138:    foreach ($this->moduleRegistry['_dispatcher'] as $dispatcherClassName) {
00139:     $dispatcher = GeneralUtility::makeInstance(ObjectManager::class)->get($dispatcherClassName);
00140:     if ($dispatcher->callModule($moduleName) === TRUE) {
00141:      return TRUE;
00142:      break;

3 TYPO3\CMS\Backend\BackendModuleRequestHandler::dispatchModule("web_AimeosTxAimeosAdmin")

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/backend/Classes/BackendModuleRequestHandler.php:
00070:   $moduleName = (string)GeneralUtility::_GET('M');
00071:   if ($this->isDispatchedModule($moduleName)) {
00072:    $isDispatched = $this->dispatchModule($moduleName);
00073:   } else {
00074:    $isDispatched = $this->callTraditionalModule($moduleName);

2 TYPO3\CMS\Backend\BackendModuleRequestHandler::handleRequest()

/var/customers/webs/ag/typo3_src-7.2.0/typo3/sysext/core/Classes/Core/Bootstrap.php:
00189:   $this->registerRequestHandlers();
00190:   $requestHandler = $this->resolveRequestHandler();
00191:   $requestHandler->handleRequest();
00192:   return $this;
00193:  }

1 TYPO3\CMS\Core\Core\Bootstrap::run("typo3/")

/var/customers/webs/ag/typo3_src-7.2.0/typo3/mod.php:
00022: define('TYPO3_MODE', 'BE');
00023: require __DIR__ . '/sysext/core/Classes/Core/Bootstrap.php';
00024: \TYPO3\CMS\Core\Core\Bootstrap::getInstance()->run('typo3/')->shutdown();

Typo3 Database Analysator don't find special tables

Hi,

when I start the typo3 Database Analyser, he give me the information, that all special tables from aimeos are not valid - so he attemts to delete them ...

I think (I'm not the big Typo3 developer) in the /ext/aimeos/ext_tables.sql have to notice all aimeos tables, or?

[QUESTION] regenerate preview images?

Hi,

I would like to know if it is possible to regenerate the preview images, if I change their sizes?
e.g. a scheduler task or similar?

If not, that might be a good idea.

cHashEnforcer has to be disabled for CMS master (cHash)

TYPO3 CMS master now checks with extbase Plugins if cHash parameter is required.
As the plugins themselves are completely uncachable cHash is not really required and isn't used by the UrlBuilder, therefore we should set:

features {
		requireCHashArgumentForActionArguments = 0
	}

for all plugins.

[FEATURE] Use of "Simulate time"

The setting "Simulate time" on the FE admin panel is ignored by Aimeos. This is a cool feature of TYPO3 to be able to test things before they are shown to the customers.

E. g. I have a messagebox promoting a discount code which only is shown in specified date range, the coupon has the same validity range. But because Aimeos is ignoring "simulate time" the error message 'Coupon code "ostern2017" is invalid or not available any more' is shown.

For the realisation we need a new interface in ai-typo3 to provide this setting to the core, perhaps https://github.com/aimeos/ai-typo3/blob/master/lib/custom/src/MW/Session/Typo3.php could be the right place. But I never used this as programmer and I don't know how and where this is handled by the CMS. I will provide some more information in short...

UriBuilder doesn't generate URLs

There's a problem with the new constant editor, e.g. on the basket page. The flexform contains no page reference for the page itself and if no page ID in the constants is added, the UriBuilder generates no links for modifying the quantity and deleting items from the basket.

@gilbertsoft Do you know a solution for this? If not, we have to remove the page IDs from the constants editor.

Countryname not fetched from ISO code in frontend form

I run 17.2.1 on TYPO3 8.6.1 (yes it works fine for most parts).

Many country 2 digit ISO are not translated into the country name. This effect starts around the KG code and then continues frequently until it remains. Therefor, NL stays NL instead of Nederland.
Even if I change the list to

plugin.tx_aimeos.settings.client.html.checkout.standard.address.countries {
0 = NL
# Nederland
}

I only get NL in the form select field.

This is the HTML:

` <option value="">Selecteer land</option> <option value="AD"> Andorra </option> <option value="AE"> United Arab Emirates </option> <option value="AF"> Afghanistan </option> <option value="AG"> Antigua and Barbuda </option> <option value="AI"> Anguilla </option> <option value="AL"> Albania </option> <option value="AM"> Armenia </option> <option value="AO"> Angola </option> <option value="AQ"> Antarctica </option> <option value="AR"> Argentina </option> <option value="AS"> American Samoa </option> <option value="AT"> Austria </option> <option value="AU"> Australia </option> <option value="AW"> Aruba </option> <option value="AX"> Åland Islands </option> <option value="AZ"> Azerbaijan </option> <option value="BA"> Bosnia and Herzegovina </option> <option value="BB"> Barbados </option> <option value="BD"> Bangladesh </option> <option value="BE"> Belgium </option> <option value="BF"> Burkina Faso </option> <option value="BG"> Bulgaria </option> <option value="BH"> Bahrain </option> <option value="BI"> Burundi </option> <option value="BJ"> Benin </option> <option value="BL"> Saint Barthélemy </option> <option value="BM"> Bermuda </option> <option value="BN"> Brunei Darussalam </option> <option value="BO"> Bolivia, Plurinational State of </option> <option value="BQ"> Bonaire, Sint Eustatius and Saba </option> <option value="BR"> Brazil </option> <option value="BS"> Bahamas </option> <option value="BT"> Bhutan </option> <option value="BV"> Bouvet Island </option> <option value="BW"> Botswana </option> <option value="BY"> Belarus </option> <option value="BZ"> Belize </option> <option value="CA"> Canada </option> <option value="CC"> Cocos (Keeling) Islands </option> <option value="CD"> Congo, the Democratic Republic of the </option> <option value="CF"> Central African Republic </option> <option value="CG"> Congo </option> <option value="CH"> Switzerland </option> <option value="CI"> Côte d'Ivoire </option> <option value="CK"> Cook Islands </option> <option value="CL"> Chile </option> <option value="CM"> Cameroon </option> <option value="CN"> China </option> <option value="CO"> Colombia </option> <option value="CR"> Costa Rica </option> <option value="CU"> Cuba </option> <option value="CV"> Cape Verde </option> <option value="CW"> Curaçao </option> <option value="CX"> Christmas Island </option> <option value="CY"> Cyprus </option> <option value="CZ"> Czech Republic </option> <option value="DE"> Germany </option> <option value="DJ"> Djibouti </option> <option value="DK"> Denmark </option> <option value="DM"> Dominica </option> <option value="DO"> Dominican Republic </option> <option value="DZ"> Algeria </option> <option value="EC"> Ecuador </option> <option value="EE"> Estonia </option> <option value="EG"> Egypt </option> <option value="EH"> Western Sahara </option> <option value="ER"> Eritrea </option> <option value="ES"> Spain </option> <option value="ET"> Ethiopia </option> <option value="FI"> Finland </option> <option value="FJ"> Fiji </option> <option value="FK"> Falkland Islands (Malvinas) </option> <option value="FM"> FM </option> <option value="FO"> Faroe Islands </option> <option value="FR"> France </option> <option value="GA"> Gabon </option> <option value="GB"> United Kingdom </option> <option value="GD"> Grenada </option> <option value="GE"> Georgia </option> <option value="GF"> French Guiana </option> <option value="GG"> Guernsey </option> <option value="GH"> Ghana </option> <option value="GI"> Gibraltar </option> <option value="GL"> Groenland </option> <option value="GM"> Gambia </option> <option value="GN"> Guinea </option> <option value="GP"> Guadeloupe </option> <option value="GQ"> Equatorial Guinea </option> <option value="GR"> Greece </option> <option value="GS"> South Georgia and the South Sandwich Islands </option> <option value="GT"> Guatemala </option> <option value="GU"> Guam </option> <option value="GW"> Guinea-Bissau </option> <option value="GY"> Guyana </option> <option value="HK"> Hong Kong </option> <option value="HM"> Heard Island and McDonald Islands </option> <option value="HN"> Honduras </option> <option value="HR"> Croatia </option> <option value="HT"> Haiti </option> <option value="HU"> Hungary </option> <option value="ID"> Indonesia </option> <option value="IE"> Ireland </option> <option value="IL"> Israel </option> <option value="IM"> IM </option> <option value="IN"> India </option> <option value="IO"> IO </option> <option value="IQ"> Irak </option> <option value="IR"> Iran, Islamitische republiek van </option> <option value="IS"> Ijsland </option> <option value="IT"> Italie </option> <option value="JE"> JE </option> <option value="JM"> Jamaica </option> <option value="JO"> JO </option> <option value="JP"> Japan </option> <option value="KE"> Kenia </option> <option value="KG"> KG </option> <option value="KH"> KH </option> <option value="KI"> KI </option> <option value="KM"> KM </option> <option value="KN"> KN </option> <option value="KP"> KP </option> <option value="KR"> Korea, Republiek van </option> <option value="KW"> Koeweit </option> <option value="KY"> KY </option> <option value="KZ"> Kazachstan </option> <option value="LA"> LA </option> <option value="LB"> Libanon </option> <option value="LC"> LC </option> <option value="LI"> LI </option> <option value="LK"> Sri Lanka </option> <option value="LR"> LR </option> <option value="LS"> LS </option> <option value="LT"> LT </option> <option value="LU"> Luxemburg </option> <option value="LV"> Letland </option> <option value="LY"> Libie </option> <option value="MA"> Marokko </option> <option value="MC"> Monaco </option> <option value="MD"> Moldavie, Republiek van </option> <option value="ME"> Montenegro </option> <option value="MF"> MF </option> <option value="MG"> Madagascar </option> <option value="MH"> MH </option> <option value="MK"> Macedonië </option> <option value="ML"> Mali </option> <option value="MM"> MM </option> <option value="MN"> Mongolië </option> <option value="MO"> MO </option> <option value="MP"> MP </option> <option value="MQ"> MQ </option> <option value="MR"> MR </option> <option value="MS"> MS </option> <option value="MT"> Malta </option> <option value="MU"> MU </option> <option value="MV"> MV </option> <option value="MW"> MW </option> <option value="MX"> MX </option> <option value="MY"> MY </option> <option value="MZ"> MZ </option> <option value="NA"> NA </option> <option value="NC"> NC </option> <option value="NE"> NE </option> <option value="NF"> NF </option> <option value="NG"> NG </option> <option value="NI"> NI </option> <option value="NL"> NL </option> <option value="NO"> NO </option> <option value="NP"> NP </option> <option value="NR"> Nauru </option> <option value="NU"> NU </option> <option value="NZ"> NZ </option> <option value="OM"> OM </option> <option value="PA"> PA </option> <option value="PE"> PE </option> <option value="PF"> PF </option> <option value="PG"> PG </option> <option value="PH"> PH </option> <option value="PK"> PK </option> <option value="PL"> PL </option> <option value="PM"> PM </option> <option value="PN"> PN </option> <option value="PR"> PR </option> <option value="PS"> PS </option> <option value="PT"> PT </option> <option value="PW"> PW </option> <option value="PY"> PY </option> <option value="QA"> QA </option> <option value="RE"> RE </option> <option value="RO"> RO </option> <option value="RS"> RS </option> <option value="RU"> RU </option> <option value="RW"> RW </option> <option value="SA"> SA </option> <option value="SB"> SB </option> <option value="SC"> SC </option> <option value="SD"> SD </option> <option value="SE"> SE </option> <option value="SG"> SG </option> <option value="SH"> SH </option> <option value="SI"> SI </option> <option value="SJ"> SJ </option> <option value="SK"> SK </option> <option value="SL"> SL </option> <option value="SM"> SM </option> <option value="SN"> SN </option> <option value="SO"> SO </option> <option value="SR"> SR </option> <option value="SS"> SS </option> <option value="ST"> ST </option> <option value="SV"> SV </option> <option value="SX"> SX </option> <option value="SY"> SY </option> <option value="SZ"> SZ </option> <option value="TC"> TC </option> <option value="TD"> TD </option> <option value="TF"> TF </option> <option value="TG"> TG </option> <option value="TH"> TH </option> <option value="TJ"> TJ </option> <option value="TK"> TK </option> <option value="TL"> TL </option> <option value="TM"> TM </option> <option value="TN"> TN </option> <option value="TO"> TO </option> <option value="TR"> TR </option> <option value="TT"> TT </option> <option value="TV"> TV </option> <option value="TW"> TW </option> <option value="TZ"> TZ </option> <option value="UA"> UA </option> <option value="UG"> UG </option> <option value="UM"> UM </option> <option value="US"> US </option> <option value="UY"> UY </option> <option value="UZ"> UZ </option> <option value="VA"> VA </option> <option value="VC"> VC </option> <option value="VE"> VE </option> <option value="VG"> VG </option> <option value="VI"> VI </option> <option value="VN"> VN </option> <option value="VU"> VU </option> <option value="WF"> WF </option> <option value="WS"> WS </option> <option value="YE"> YE </option> <option value="YT"> YT </option> <option value="ZA"> ZA </option> <option value="ZM"> ZM </option> <option value="ZW"> ZW </option> </select>`

Unable to delete product from Admin product list (Products)

When trying to delete a product form product list in the administration interface, after the confirmation window and pressing Delete, the application returns the error below and nothing is deleted.

Error :
Error Unable to call method "getListItems",[...]/typo3conf/ext/aimeos/Resources/Private/Extensions/ai-admin-jqadm/admin/jqadm/src/Admin/JQAdm/Base.php:51
Yet, I am unable to trace the method to understand where the error is sourced. In version 17, there is no such problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.