A quick introduction in how to use this extension.
Installation
Provide which steps should be done to install the <extension-key>
properly. We recommend to give enough hints to kindly guide the user
through this process.
Configuration
In this section you should cover all the needed configurations to set up
the <extension-key> correctly. Additionally you should present an
overview about all available configurations one can set up in <extension-key>.
Templates
In this section you can describe how a user can use its custom
templates. Additionally you can present and describe what your custom
viewhelpers are doing. Last but not least you can provide some example
templates.
The editor section
This section is specialised for editors. Editors find everything that is
useful for them using the <extension-key> in this section.
The developers corner
Use this section to provide examples of code or any information
that would be deemed relevant to a developer. For example explain how
a certain feature was implemented.
Troubleshooting
Use this section for informing about troubleshooting. If the users of
your extension encountered any problems they should be able to find
information to solve their problems in this section.
Introduction
This chapter gives you a basic introduction about the TYPO3 CMS extension "maagitproduct".
This extension implements a versatile shop system based on Extbase & Fluid and using latest technologies provided by TYPO3 CMS.
Best practise from the scratch
Based on Extbase & Fluid
Easy to use & understand for editors
Using as many elements from the Core as possible, e.g. FAL and sys categories
Built in support for content elements
Integrated payment interfaces to PayPal, Stripe and Saferpay
Define vouchers and discounts
Easy definiton of delivery costs
Get rating for articles
Getting rating of shopping experience
and many more ...
It is a highly customizable framework for various shopping carts aspects -
more than just a shopping basket! See fully configurated example shop at
maagIT Shop.
If you need private or personal support, ask one of the developers for it.
Be aware that this support may not be free of charge!
See also
Take a look at the "Sponsoring" page for professional, customized
support for your business case.
Contribution
Contributions are essential to the success of open source projects, but are by
no means limited to contributing code. Much more can be done, for example by
improving documentation
or answering questions on stackoverflow.com.
Contribution workflow
(1) Please always create an issue on Bitbucket
before starting a change. This is very helpful to understand what kind of issue
the pull request will solve and if your change will be accepted.
(2) Bug fixes: Please describe the type of bug you want to fix and provide
feedback on how to reproduce the problem. We will only accept bug fixes if we
can reproduce the problem.
(3) Features: Not every feature is relevant to the majority of the users.
In addition: We do not want to make this extension more complicated in usability
for a marginal feature. It helps to have a discussion about a new feature before
opening a pull request.
(4) Please always create a pull request based on the updated release
branch.
Sponsoring
This extension and the manual have been created in endless hours, mostly by a
single person. It is actively maintained to cover all supported TYPO3 versions,
user interface concepts and best practice approaches. If this extension helps
you in any way to meet your business needs, please consider giving something
back and find below some ideas to make me happy.
If you want to make sure this extension will be ready in time for the upcoming
TYPO3 release, or you need a feature that isn't implemented yet, just let me
know and we'll find a way to organize it!
PayPal
Support me by a donation on paypal.com.
It is just one click away.
In the module menu to the left navigate to Admin Tools > Maintanance,
then click on Analyze database and create all.
Clear all caches
In the same module Admin Tools > Maintanance you can also
conveniently clear all caches by clicking the button Flush cache.
Quick configuration
Include TypoScript template
It is necessary to include at least the basic TypoScript provided by this
extension.
Go module Site Management > TypoScript and chose your root page. It should
already contain a TypoScript template record. Switch to view
Edit TypoScript Record and click on Edit the whole template record.
Switch to tab Advanced Options and add the following templates from the list
to the right: Maagitproduct (maagitproduct). It is possible to include additional
templates provided by the maagitproduct extension depending on your use case. For example
you can additionally chose Maagitproduct basket on top CSS
to use basket in a header.
Read more about possible configurations via TypoScript in the
typoscript section.
"Home": Root page of the site, containing the root TypoScript template record and
the start page content: Normal page.
"Article Storage": A folder to store the articles in: Folder
Usually you will also need
"Products": A page to display all articles on: Normal page
"Checkout": A single page to display the checkout process on: Normal page
Your page tree could, for example look like that:
Home
├── Some page
├── ...
├── Products
│ └── Checkout
├── ...
└── Storage
├── Other storage
├── ...
└── Article Storage
Copied!
Create articles
Before any articles can be shown in the frontend those need to be
created.
Go to the module Web > Page
Go to the "Article Storage" Folder that you created in the first step.
Use the button Create new record and select the
entry Product.
Fill out all desired fields on all desired tabs (e.g. see Product and click Save.
More information about the records can be found here:
recordproduct, recordcategory.
Tip
Articles are normal content objects and uses it's fields Title, Description, Media, and so on.
Add plugins: display the articles in the frontend
A plugin is used to render a defined selection of records in the frontend.
Follow these steps to add a plugin respectively for product list and view to
the basket:
Product page
Go to module Web > Page and to the previously created page
"Products".
Add a new content element and select the entry
MaagIT Product > Maagit Product List.
Switch to the tab Configuration where you can define the plugins settings.
The most important settings are Storage Pid and Recursive.
Fill the field Storage Pid by selecting the sysfolder you created
in the beginning of the tutorial.
Save the plugin.
Basket
Go to module Web > Page and to the previously created page
"Products".
Add a new content element and select the entry
MaagIT Product > Maagit Product Basket.
Switch to the tab Configuration where you can define the plugins settings.
The most important settings are Checkout page.
Fill the field Checkout page by selecting the Checkout page you created
in the beginning of the tutorial.
Save the plugin.
Read more about the plugin configuration in chapter plugin.
Have a look at the frontend
Load the "Products" page in the frontend and you should now see the article records
as output. A click on the "add to basket" link should add the article to the basket.
You want to change the way the articles are displayed? Have a look
at the chapter Templating
Quick templating in Fluid
EXT:maagitproduct is using Fluid as templating engine. If you are not experienced
with Fluid yet you can read more about it in the chapter
templatingstart.
Copy the Fluid templates that you want to adjust to your
templatingsitepackage.
You find the original templates in EXT:maagitproduct/Resources/Private/Templates/
and the partials in EXT:maagitproduct/Resources/Private/Partials/. Never change
these templates directly!
To override the standard maagitproduct templates
with your own you can use the TypoScript constants to set the
paths:
Enable manual sorting of news records manualSorting
manualSorting
manualSorting
type
bool
Default
If set, news records can be manually sorted in the list view by the well
known icons "up" and "down".
Disable required date field dateTimeNotRequired
dateTimeNotRequired
dateTimeNotRequired
type
bool
Default
If set, the date field of the news record is not a required field anymore.
Furthermore if creating a new record, it is not filled anymore with the
current date.
Be aware that using this feature may lead to unexpected results if using
e.g. the date menu if the field is not used anymore.
Show thumbnails in backend list module mediaPreview
mediaPreview
mediaPreview
type
bool
Default
false
If enabled, the list module will show thumbnails of the media items.
This setting is only evaluated for TYPO3 10 as it has been removed for version 11. Use the extension studiomitte/recordlist-thumbnail to get it back in v11.
Advanced preview configuration for media files advancedMediaPreview
advancedMediaPreview
advancedMediaPreview
type
bool
Default
1
If enabled, more options are available for editors defining where an media
element should be displayed.
Slug behaviour slugBehaviour
slugBehaviour
slugBehaviour
type
string, keyword
Default
unique
Choose one of the following slug behaviours:
uniqueInSite
The same slug can be used for news in different sites. Use this
setting only if no news records are shared between sites.
unique
The same news title in different sites will lead to different slug names.
Page Tree Plugin Preview
pageTreePluginPreview
pageTreePluginPreview
type
bool
Default
1
If set, pages which contain a news plugin will show an additional icon right to the title in the page tree. This makes it easier to identify pages which are related to EXT:news.
This setting is only relevant since TYPO3 13!
Backend Module
Show administration module showAdministrationModule
showAdministrationModule
showAdministrationModule
type
bool
Default
1
If set, the backend module "News" is shown. This view might be easier for
editors who use a very limited set of features in the backend.
Hide page tree for Administration module hidePageTreeForAdministrationModule
hidePageTreeForAdministrationModule
hidePageTreeForAdministrationModule
type
bool
Default
If set, the backend module "News" is shown without the page tree. In
combination with the TsConfig redirecttopageonstart you can
achieve a very simple workflow for editors if those need only to create
news records.
UID of storage to use when importing files/images storageUidImporter
storageUidImporter
storageUidImporter
type
int
Default
1
Define the uid of the storage which is used for importing media elements
into FAL relations.
In which folder should the importer save files/images (has to exist) resourceFolderImporter
resourceFolderImporter
resourceFolderImporter
type
string
Default
/news_import
Define the folder which is used for the media elements which are imported.
Alternative configuration instead of Admin Tools
Instead of defining the property in the Admin Tools it is also possible to define
the properties in the AdditionalConfiguration.php. This is useful if
you want to include the setting in version control.