What is Progressive Web Apps ?
Looks and behaves like a mobile app.
Take advantage of native mobile device features, without requiring
the end user to visit an app store, make a purchase and download it
Secure (second last topic of answer)
Offline Mode (Check the last topic in the answer)
Just run the below command in magento root directory, it will show that log file location.
grep -r "Report ID: webapi-5c644d10f0e26" var/
Up to my mind it is in exception.log file and find the line with the content webapi-5c644d10f0e26 for the detailed report.
The problem was that $product = $this->productRepository->get($sku); gets a product for the default store. And if you want to disable it globally you need to pass $this->productRepository->get($sku, true/* edit mode */, 0/* global store*/, true/* force reload*/);
PWA - Progressive Web Application are the generally web application which is user experiences the rich web. in way of :
Reliable - load instantly and also available in offline mode.
Fast - in a way of interaction where user are smoothly interact with it, and also without any scrolling or animation junks.
Engaging - as denoted above both points if ...
11.Custom Grid In admin as continued here exceeding length of file in above ans:
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
I've also faced this problem, and as an alternative to the solution @Zefiryn proposed, I have worked around it by enclosing the return data in an array (or two). Please consider the example below.
* My function
public function myFunction()
$searchCriteria = $this->_searchCriteriaBuilder->addFilter('is_filterable_in_grid',...
curl -X GET -g "http://127.0.0.1:32769/index.php/rest/V1/customers/search?searchCriteria[sortOrders][field]=email&searchCriteria[sortOrders][direction]=asc" -H "Authorization: Bearer token"
Rest API reference http://devdocs.magento.com/swagger/index_20.html
For the API, you should read more:
For example, this below code will return the customer info:
$userData = ["username" => "firstname.lastname@example.org", "password" => "123456"];
$ch = curl_init("http://magen2.loc/...
I would recommend to check (even as a trial option) solutions like:
Those tools will show you exact traces and timing of each separate PHP Trace that is involved within any operation/transaction (not limited to API calls)
For Database related bottlenecks - MySQL Slow Query Log can be enabled (*depends on MySQL Version used). ...
For that you need to make different route url for that specific API
<!-- Category Product Links -->
<route url="/V1/rbcategories/:categoryId/products" method="GET">
<service class="Magento\Catalog\Api\CategoryLinkManagementInterface" method="getAssignedProducts" />
Progressive means that the application loads along with any relevant data and assets, as a user navigates around your website. This results in an end-user experience with better speed, usability, offline operation and device integration.
If you don't want to use the Magento Message Queues, you can just disable it.
php bin/magento module:disable Magento_Amqp
If you want to use it, you might modify your app/etc/env.php
'cron_consumers_runner' => [
'cron_run' => false,
'max_messages' => 1000,
'consumers' => [
My question is what is the function of the <parameter name="customerId" force="true">%customer_id%</parameter> and how it work?
Magento gets the customer data with passing anything except token value in API call.
In between magento calls some API related controllers for the same
Progressive Web Apps is the middle ground between installable mobile apps and websites. We expect to see more traffic on the internet from mobile devices than from desktops, by 2019. PWAs improve the look and feel of websites to increase conversion.
PWAs Offer Fast, Frictionless, “App-Like” Experiences Driving More
Traffic, Higher Conversions and ...
In your request to the API, you can specify your requested response format using the HTTP header:
Unfortunately the only 2 MIME types Magento supports currently are application/xml and application/json.
The following 2 classes provide the renderer for these formats:
Serializing the object will most likely serialize the entire PHP Object. That's the reason why you end up with a massive file. You only want to log the payload from that request.
I've wrote a module once that would log all API requests to the database for debugging purposes. The way I did it was with a plugin around the dispatch()-method of \Magento\Webapi\...
First you need to create webapi.xml under your custom module Vendor\Module\etc\
<route url="/V1/custom/:categoryId/products" method="GET">
<service class="Vendor\Module\Api\CategoryLinkManagementInterface" method="getAssignedProducts" />
– Route ...
Problem Summary: You have a PHP Array and you want to return it as a JSON Object. When you return your PHP Array, it gets converted to a JSON Array, which does not support non-sequential keys. So your keys get ignored and you end up with a sequential array of your values.
Solution Summary: You need to return a PHP Object in order to have a JSON Object in ...
I finally manage to resolve this issue.
After digging into the Magento core, I found that in the \Magento\Framework\Reflection\ExtensionAttributeProcessor::buildOutputDataArray method, Magento get the type of the extension object attribute (in my case : Vendor\MultipleDiscounts\Api\Data\DiscountOrderItemInterface). If type is array, then Magento will ...
Open the System > Extensions > Integrations
Add New Integration
Set the integration Name and other settings, then specify your
Magento 2 back-end password in the Your Password field
Switch to the API sidebar tab and select the resources which will
be available to OAuth clients:
Press the Save button. The integration will be saved and the
AFAIK, Core WebAPI Structure for both Magento 2 Commerce and Magento 2 open Source is same but Magento 2 Commerce is more optimized in terms of scalability, security.
All the Modules that are available in both Magento 2 Commerce and Magento 2 open Source, have the Same API. As you can check using the below links:
List of REST APIs for Magento Open ...
Web-based APIs (REST and SOAP) is fully improved in Magento 2. In M2, Using Service Contract API and web both are using the same functionality to access any resource. You can check Architectural diagrams to get more understanding about the flow.
You can also check M2 overview of the Web API blog post.
Some Major difference Between M1 API and M2 API: