The checkout page contain standard fields , in many cases the site owner needs to hide some fields for specific reason , the system give you the ability to hide some fields directy from xml , you can add checkout_index_index.xml (copy same structure or just what you want from this path vendor/magento/module-checkout/view/frontend/layout/checkout_index_index.xml) to you theme or your custom extension and start hiding some fields .Read more
Magento 2 have a good system for organize the blocks by layouts, In Magento 2 that is more flexible . You can play by many ways .
We want show how the developers can play with all the puzzle (layout block template and structure), the framwork Magento 2 have a component called View ("vendor/magento/framework/View"), it have almost all needed class for manage the frontend view in back and font office ,
you can inject the class Magento\Framework\View\Layout by factory for get instance of layout class . let's imagine your contruct in plugin by example is
Magento choose to use some interaction client as service (click) , for example when you try to place order you get url like rest//V1/guest-carts/:cartId/payment-information , ok but how you can see where is point this url ? Is a module controller action url ? Wrong is a service .Read more
The search use 3 request name in magento 2 :
'quick_search_container' when you search from the small field text in the top
'advanced_search_container' when you use the advanced search page
'catalog_view_container' when you entre to category page or use filter in category page it's work by default
inside class Magento\Framework\Search\Search the function search(SearchCriteriaInterface $searchCriteria) build a request with class Magento\Framework\Search\Request\Builder; it's start by puched in object $this→requestBuilder the query name example 'quick_search_container'Read more
For customize behavior of search you need know the mechanism of how Magento 2 stock and collect infos and how used it, Now in Magento 2 we have in database catalogsearch_fulltext_scope1 and catalogsearch_fulltext_scope2 related to how many scope you have let's imagine you have 2 store one for English and other for Arabic , the system create 2 scope . And stock the map of search inside this tables , bot how ? Yeah let's go and see the structure of table ,this table have 3columns entity_id and atrribute_id and data_indexRead more
After see many frontend developers peoples search for how call gallery in product list page , we decide to write small course (tutorial) for how done this task .Ok first you need create class helper inside your module , for example Ibnab/Common/Helper/Data.php and push the codeRead more
The checkout process in Magento 2 it's more practice and more abstracted with new generation ideas of user experience , in this course ibnab try to give you some key for customize the checkout page .
Saw the system use component for create and manage the page checkout, it's start from the layout checkout_index_index.xml in path vendor/magento/module-checkout/view/frontend/layoutRead more
Ok the new generation of ui grid in magento 2 give you the ability to create or change grid with xml file, this xml use extern php file for getting all part needed .
Our example here is the grid action like edit in catalog product grid or delete preview in page cms grid ,
ok we want add custom action .
Ok the xml responsible for ui grid of product list in backend is vendor/magento/module-catalog/view/adminhtml/ui_component/product_listing.xml , and for action you will inside this file :Read more
Without high technical knowledge , Easy Mega Menu give you the ability to create an organized menu ,
You have a lot of products , give a best user experience to customer :
Manual installation :
download from store
past in your folder app/code
enable extension in app/etc/config.php by adding 'Ibnab_MegaMenu' => 1,
and execute the command php bin/magento setup:upgrade
and execute the command rm -rf var/view_preprocessed/ pub/static
and execute the command php bin/magento setup:static-content:deployRead more
In the world of the big business appear Oracle ATG Commerce , in many statistic It occupies an advanced position , yes the Magento 1 It has several elements to accommodate large-scale projects and it needs , But it lacks the tools by which tasks are separated, and the removal of conflict, the user experience in admin, default unit test tool , it's real and flexible system but with old mechanism , In Ibnab we think the Magento 2 is here for taking advanced position in this domain of big business and large-scale projects .Read more
In magento 2 paypal is implemented with module Payal , in case if the customer choose payapl as method of payment M2 use Magento\Paypal\Model\Cart in place of \Magento\Payment\Model\Cart , it used for collect items and amount and validate the infos collected before sending to paypal ,
The model have more additional methods as (it extend from parent Magento\Paypal\Model\Cart) :
getAmounts() : Get shipping, tax, subtotal and discount amounts all together
_validate( ) : Check the line items and totals according to PayPal business logic limitations
_importItemsFromSalesModel() : Import items from sales model with workarounds for PayPal
Yeah after collecting the amounts and validate let's consider we choose Paypal express , the checkout redirect the function Paypal/Controller/Express/Start Action but inside this action it use the global Api class Model/Api/Nvp.phpRead more
Magento 2 comes with many technique already exist in version 1 but with new way for implementing , one of this flexible tables (grids) in the system configuration.
We imagine you have created module , we started from system.xml inside Ibnab/Table/etc/adminhtml/system.xmlRead more
This course of series give you the ability for creating your own model resource and collection , ok let's imagine you want create a simple module for persist some data like brand infos for example .
1 – Create :
First we need create our table inside our database for that you need create the Setup folder ,The path complete of module is Ibnab/Brand , inside Setup folder create file InstallSchema.php and fill with :Read more
Magento 2 import export module give you the ability to implement it behavior(standard system export import) with simple xml and general adapter . Some point before stated :
A – For import you need create import.xml inside etc of your module
B : You can create just import without export
C : Standard place to show of your import module is form menu system→export or system→ import .
EAV system in Magento 2 almost similar to Magento 1 but many function and technique is changed , in this tutorials we give you 2 example of how adding custom eav attribute to category or customer .
1 – Create custom attribute for category :
Go to your model and create Setup folder , inside it create file InstallData.php and push this full code :Read more
M2 system use for read and execute (scriptSelector = 'script[type="text/x-magento-init"]' and dataAttr = 'data-mage-init' ) many js file like vendor/magento/magento2-base/lib/web/mage/apply/main.js and scripts.js and vendor/magento/magento2-base/lib/web/mage /mage.js
you can find vendor/magento/magento2-base/lib/web/mage
in normal case you can declare as virtual :
1 - Infos About Store
Get Current store Id :
inject \Magento\Store\Model\StoreManagerInterface $storeManage
$this->storeManager = $storeManager;
and get the id with :
$id = $this->storeManager->getStore()->getId();
get base Url :
$baseUrl = $this->storeManager->getStore()->getBaseUrl();
Magento 2 Action allow the developers using $request $response and $resultRedirectFactory objects without injecting (DI) by hand .
By extending \Magento\Backend\App\Action for backend action case or \Magento\Framework\App\Action\Action for global case , you have $request $response and $resultRedirectFactory .
1 – Request :
the top level parent class of action is Magento\Framework\App\Action\AbstractAction , AbstractAction injected by di with \Magento\Framework\App\Action\Context $context .Read more
Magento 2 have flexible technique for manage Ui , have by default jQuery included , the teams of M2 include requirejs too on core , we call js with asynchronous method .
This tutorial give you in practice the ability of :
- - call js with requirejs
- - create custom js for manage ui .
- - use jquery widgets
- - create requrejs-config.js
- - additional technique like work with frontend_model button_url and attribute tags ,pass params between frontend_model and .phtml
In first tutorial we introduce the creation of system configuration , in this course we explain how set and get the value (play with configuration).
1 – Set Value Configuration :
You can set the value of specific field inside stores configuration , by using the interface \ \Magento\Framework\App\Config\MutableScopeConfigInterface , (magento2 by calling this interface with technique of preference give you as result a MutableScopeConfig class instance)
inject the class to controller or helper or block or anywhere :
in Magento2 the global architecture of system configuration is changed but the vision is the same !
Add global configuration by website store or store view and use inside you code for enable disable or other choices .
In the first course we introduce the creation if system configuration.