This my third article on my impressions with Magento 2.0. In this case I have to work with the Magento 2.0 SOAP API.
In one word summary. Experience is frustration to say the least.
1. Bad documentation
Why is documentation bad. The documentation has no valid example. All the examples are either missing, or incomplete or simply wrong.
2. Support Non-Existent
Searching for Magento 2.0 SOAP API on the Internet, will return either no-results, Magento 1 results. Or lots of people asking, and no one able to answer.
Well in the next year or so, this will deffinitely change, if people don't run away from Magento.
3. Magento 2 SOAP API Has Crazy Ammounts of Endpoints
Well SOAP endpoints are well just 105. Well done. You have outdone yourselves. And most of these have just 1 method.
Its incredible what amount of useless pile of crap, someone can create with enough time on their hands.
- http://remiya.com/soap/default?wsdl&services=storeStoreRepositoryV1
- http://remiya.com/soap/default?wsdl&services=storeGroupRepositoryV1
- http://remiya.com/soap/default?wsdl&services=storeWebsiteRepositoryV1
- http://remiya.com/soap/default?wsdl&services=storeStoreConfigManagerV1
- http://remiya.com/soap/default?wsdl&services=directoryCurrencyInformationAcquirerV1
- http://remiya.com/soap/default?wsdl&services=directoryCountryInformationAcquirerV1
- http://remiya.com/soap/default?wsdl&services=backendModuleServiceV1
- http://remiya.com/soap/default?wsdl&services=eavAttributeSetRepositoryV1
- http://remiya.com/soap/default?wsdl&services=eavAttributeSetManagementV1
- http://remiya.com/soap/default?wsdl&services=customerGroupRepositoryV1
- http://remiya.com/soap/default?wsdl&services=customerGroupManagementV1
- http://remiya.com/soap/default?wsdl&services=customerCustomerMetadataV1
- http://remiya.com/soap/default?wsdl&services=customerAddressMetadataV1
- http://remiya.com/soap/default?wsdl&services=customerCustomerRepositoryV1
- http://remiya.com/soap/default?wsdl&services=customerAccountManagementV1
- http://remiya.com/soap/default?wsdl&services=customerAddressRepositoryV1
- http://remiya.com/soap/default?wsdl&services=cmsPageRepositoryV1
- http://remiya.com/soap/default?wsdl&services=cmsBlockRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogProductRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogProductAttributeTypesListV1
- http://remiya.com/soap/default?wsdl&services=catalogProductAttributeRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogCategoryAttributeRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogCategoryAttributeOptionManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductTypeListV1
- http://remiya.com/soap/default?wsdl&services=catalogAttributeSetRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogAttributeSetManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductAttributeManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductAttributeGroupRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogProductAttributeOptionManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductMediaAttributeManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductAttributeMediaGalleryManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductTierPriceManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogCategoryRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogCategoryManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductCustomOptionTypeListV1
- http://remiya.com/soap/default?wsdl&services=catalogProductCustomOptionRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogProductLinkTypeListV1
- http://remiya.com/soap/default?wsdl&services=catalogProductLinkManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogProductLinkRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogCategoryLinkManagementV1
- http://remiya.com/soap/default?wsdl&services=catalogCategoryLinkRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogProductWebsiteLinkRepositoryV1
- http://remiya.com/soap/default?wsdl&services=searchV1
- http://remiya.com/soap/default?wsdl&services=quoteCartRepositoryV1
- http://remiya.com/soap/default?wsdl&services=quoteCartManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestCartRepositoryV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestCartManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteShippingMethodManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestShippingMethodManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteCartItemRepositoryV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestCartItemRepositoryV1
- http://remiya.com/soap/default?wsdl&services=quotePaymentMethodManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestPaymentMethodManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteBillingAddressManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestBillingAddressManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteCouponManagement
- V1http://remiya.com/soap/default?wsdl&services=quoteGuestCouponManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteCartTotalRepositoryV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestCartTotalManagementV1
- http://remiya.com/soap/default?wsdl&services=quoteGuestCartTotalRepositoryV1
- http://remiya.com/soap/default?wsdl&services=quoteCartTotalManagementV1
- http://remiya.com/soap/default?wsdl&services=checkoutAgreementsCheckoutAgreementsRepositoryV1
- http://remiya.com/soap/default?wsdl&services=bundleProductLinkManagementV1
- http://remiya.com/soap/default?wsdl&services=bundleProductOptionRepositoryV1
- http://remiya.com/soap/default?wsdl&services=bundleProductOptionTypeListV1
- http://remiya.com/soap/default?wsdl&services=bundleProductOptionManagementV1
- http://remiya.com/soap/default?wsdl&services=downloadableLinkRepositoryV1
- http://remiya.com/soap/default?wsdl&services=downloadableSampleRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesOrderRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesOrderManagementV1
- http://remiya.com/soap/default?wsdl&services=salesOrderAddressRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesOrderItemRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesInvoiceRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesInvoiceManagementV1
- http://remiya.com/soap/default?wsdl&services=salesInvoiceCommentRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesCreditmemoManagementV1
- http://remiya.com/soap/default?wsdl&services=salesCreditmemoRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesCreditmemoCommentRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesShipmentRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesShipmentManagementV1
- http://remiya.com/soap/default?wsdl&services=salesShipmentCommentRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesShipmentTrackRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesTransactionRepositoryV1
- http://remiya.com/soap/default?wsdl&services=catalogInventoryStockRegistryV1
- http://remiya.com/soap/default?wsdl&services=checkoutGuestShippingInformationManagementV1
- http://remiya.com/soap/default?wsdl&services=checkoutShippingInformationManagementV1
- http://remiya.com/soap/default?wsdl&services=checkoutTotalsInformationManagementV1
- http://remiya.com/soap/default?wsdl&services=checkoutGuestTotalsInformationManagementV1
- http://remiya.com/soap/default?wsdl&services=checkoutGuestPaymentInformationManagementV1
- http://remiya.com/soap/default?wsdl&services=checkoutPaymentInformationManagementV1
- http://remiya.com/soap/default?wsdl&services=integrationAdminTokenServiceV1
- http://remiya.com/soap/default?wsdl&services=integrationCustomerTokenServiceV1
- http://remiya.com/soap/default?wsdl&services=configurableProductLinkManagementV1
- http://remiya.com/soap/default?wsdl&services=configurableProductConfigurableProductManagementV1
- http://remiya.com/soap/default?wsdl&services=configurableProductOptionRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesRuleRuleRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesRuleCouponRepositoryV1
- http://remiya.com/soap/default?wsdl&services=salesRuleCouponManagementV1
- http://remiya.com/soap/default?wsdl&services=taxTaxRateRepositoryV1
- http://remiya.com/soap/default?wsdl&services=taxTaxRuleRepositoryV1
- http://remiya.com/soap/default?wsdl&services=taxTaxClassRepositoryV1
- http://remiya.com/soap/default?wsdl&services=giftMessageCartRepositoryV1
- http://remiya.com/soap/default?wsdl&services=giftMessageItemRepositoryV1
- http://remiya.com/soap/default?wsdl&services=giftMessageGuestCartRepositoryV1
- http://remiya.com/soap/default?wsdl&services=giftMessageGuestItemRepositoryV1
4. Magento 2 SOAP API is Inconsistent or With Crazy Syntax
Inconsistent structure. Sometimes you have "item" thrown at you. Sometimes you don't. Do not try to guess, you cannot. Read the documentation. Ooops. Did I mention documentation is missing or incorrect. I guess you are out of luck.
Crazy syntax. Deffinitely. See example below. A 5 dimensional array for simple search query. And did you see again the 2 useless "item" levels.
"filterGroups" => [
"item" => [
"filters" => [
"item" => [
"field" => "sku",
"value" => $sku,
]
]
]
]
5. Errors All Over The Place
Trying to upload products returns all inconsistent and unhelpful messages, why it has failed.
Worst of them is called "General Error". And it returns guess what. Stack trace of all the Errors thrown by Magento 2.
Very helpful. Wow.
7. Magento 2 API Brings MySQL Down
As you API starts to work you will get messages like this:
[SoapFault]
SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://remiya.com/soap/default?wsdl&services=catalogP
roductRepositoryV1' : failed to load external entity "http://remiya.com/soap/default?wsdl&services=
catalogProductRepositoryV1"
What is actually means your MySQL has died after you have uploaded several products. Outstanding Magento 2 crap.
Summary
Magento 2 API is inconsistent, full of errors, unhelpful piece of crap. It is one of the worst APIs I have seen in the last 15 years.
It even surpasses the terrible Google APIs with their crap OAuth authentication requirements.
Magento 2 is so memory hungry. Even simple operations on an empty Magento 2 store will will eat so much memory, that essential servces will be effectively shut down.
PS. Did I make Magento 2 SOAP API work at the end? Yes, I did, with days lost down the drain, upping up server memory, lots of investigation, trials and errors, etc, etc.