Blog

Magento 2.0 - Third Impression. Working with APIs

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.

  1. http://remiya.com/soap/default?wsdl&services=storeStoreRepositoryV1
  2. http://remiya.com/soap/default?wsdl&services=storeGroupRepositoryV1
  3. http://remiya.com/soap/default?wsdl&services=storeWebsiteRepositoryV1
  4. http://remiya.com/soap/default?wsdl&services=storeStoreConfigManagerV1
  5. http://remiya.com/soap/default?wsdl&services=directoryCurrencyInformationAcquirerV1
  6. http://remiya.com/soap/default?wsdl&services=directoryCountryInformationAcquirerV1
  7. http://remiya.com/soap/default?wsdl&services=backendModuleServiceV1
  8. http://remiya.com/soap/default?wsdl&services=eavAttributeSetRepositoryV1
  9. http://remiya.com/soap/default?wsdl&services=eavAttributeSetManagementV1
  10. http://remiya.com/soap/default?wsdl&services=customerGroupRepositoryV1
  11. http://remiya.com/soap/default?wsdl&services=customerGroupManagementV1
  12. http://remiya.com/soap/default?wsdl&services=customerCustomerMetadataV1
  13. http://remiya.com/soap/default?wsdl&services=customerAddressMetadataV1
  14. http://remiya.com/soap/default?wsdl&services=customerCustomerRepositoryV1
  15. http://remiya.com/soap/default?wsdl&services=customerAccountManagementV1
  16. http://remiya.com/soap/default?wsdl&services=customerAddressRepositoryV1
  17. http://remiya.com/soap/default?wsdl&services=cmsPageRepositoryV1
  18. http://remiya.com/soap/default?wsdl&services=cmsBlockRepositoryV1
  19. http://remiya.com/soap/default?wsdl&services=catalogProductRepositoryV1
  20. http://remiya.com/soap/default?wsdl&services=catalogProductAttributeTypesListV1
  21. http://remiya.com/soap/default?wsdl&services=catalogProductAttributeRepositoryV1
  22. http://remiya.com/soap/default?wsdl&services=catalogCategoryAttributeRepositoryV1
  23. http://remiya.com/soap/default?wsdl&services=catalogCategoryAttributeOptionManagementV1
  24. http://remiya.com/soap/default?wsdl&services=catalogProductTypeListV1
  25. http://remiya.com/soap/default?wsdl&services=catalogAttributeSetRepositoryV1
  26. http://remiya.com/soap/default?wsdl&services=catalogAttributeSetManagementV1
  27. http://remiya.com/soap/default?wsdl&services=catalogProductAttributeManagementV1
  28. http://remiya.com/soap/default?wsdl&services=catalogProductAttributeGroupRepositoryV1
  29. http://remiya.com/soap/default?wsdl&services=catalogProductAttributeOptionManagementV1
  30. http://remiya.com/soap/default?wsdl&services=catalogProductMediaAttributeManagementV1
  31. http://remiya.com/soap/default?wsdl&services=catalogProductAttributeMediaGalleryManagementV1
  32. http://remiya.com/soap/default?wsdl&services=catalogProductTierPriceManagementV1
  33. http://remiya.com/soap/default?wsdl&services=catalogCategoryRepositoryV1
  34. http://remiya.com/soap/default?wsdl&services=catalogCategoryManagementV1
  35. http://remiya.com/soap/default?wsdl&services=catalogProductCustomOptionTypeListV1
  36. http://remiya.com/soap/default?wsdl&services=catalogProductCustomOptionRepositoryV1
  37. http://remiya.com/soap/default?wsdl&services=catalogProductLinkTypeListV1
  38. http://remiya.com/soap/default?wsdl&services=catalogProductLinkManagementV1
  39. http://remiya.com/soap/default?wsdl&services=catalogProductLinkRepositoryV1
  40. http://remiya.com/soap/default?wsdl&services=catalogCategoryLinkManagementV1
  41. http://remiya.com/soap/default?wsdl&services=catalogCategoryLinkRepositoryV1
  42. http://remiya.com/soap/default?wsdl&services=catalogProductWebsiteLinkRepositoryV1
  43. http://remiya.com/soap/default?wsdl&services=searchV1
  44. http://remiya.com/soap/default?wsdl&services=quoteCartRepositoryV1
  45. http://remiya.com/soap/default?wsdl&services=quoteCartManagementV1
  46. http://remiya.com/soap/default?wsdl&services=quoteGuestCartRepositoryV1
  47. http://remiya.com/soap/default?wsdl&services=quoteGuestCartManagementV1
  48. http://remiya.com/soap/default?wsdl&services=quoteShippingMethodManagementV1
  49. http://remiya.com/soap/default?wsdl&services=quoteGuestShippingMethodManagementV1
  50. http://remiya.com/soap/default?wsdl&services=quoteCartItemRepositoryV1
  51. http://remiya.com/soap/default?wsdl&services=quoteGuestCartItemRepositoryV1
  52. http://remiya.com/soap/default?wsdl&services=quotePaymentMethodManagementV1
  53. http://remiya.com/soap/default?wsdl&services=quoteGuestPaymentMethodManagementV1
  54. http://remiya.com/soap/default?wsdl&services=quoteBillingAddressManagementV1
  55. http://remiya.com/soap/default?wsdl&services=quoteGuestBillingAddressManagementV1
  56. http://remiya.com/soap/default?wsdl&services=quoteCouponManagement
  57. V1http://remiya.com/soap/default?wsdl&services=quoteGuestCouponManagementV1
  58. http://remiya.com/soap/default?wsdl&services=quoteCartTotalRepositoryV1
  59. http://remiya.com/soap/default?wsdl&services=quoteGuestCartTotalManagementV1
  60. http://remiya.com/soap/default?wsdl&services=quoteGuestCartTotalRepositoryV1
  61. http://remiya.com/soap/default?wsdl&services=quoteCartTotalManagementV1
  62. http://remiya.com/soap/default?wsdl&services=checkoutAgreementsCheckoutAgreementsRepositoryV1
  63. http://remiya.com/soap/default?wsdl&services=bundleProductLinkManagementV1
  64. http://remiya.com/soap/default?wsdl&services=bundleProductOptionRepositoryV1
  65. http://remiya.com/soap/default?wsdl&services=bundleProductOptionTypeListV1
  66. http://remiya.com/soap/default?wsdl&services=bundleProductOptionManagementV1
  67. http://remiya.com/soap/default?wsdl&services=downloadableLinkRepositoryV1
  68. http://remiya.com/soap/default?wsdl&services=downloadableSampleRepositoryV1
  69. http://remiya.com/soap/default?wsdl&services=salesOrderRepositoryV1
  70. http://remiya.com/soap/default?wsdl&services=salesOrderManagementV1
  71. http://remiya.com/soap/default?wsdl&services=salesOrderAddressRepositoryV1
  72. http://remiya.com/soap/default?wsdl&services=salesOrderItemRepositoryV1
  73. http://remiya.com/soap/default?wsdl&services=salesInvoiceRepositoryV1
  74. http://remiya.com/soap/default?wsdl&services=salesInvoiceManagementV1
  75. http://remiya.com/soap/default?wsdl&services=salesInvoiceCommentRepositoryV1
  76. http://remiya.com/soap/default?wsdl&services=salesCreditmemoManagementV1
  77. http://remiya.com/soap/default?wsdl&services=salesCreditmemoRepositoryV1
  78. http://remiya.com/soap/default?wsdl&services=salesCreditmemoCommentRepositoryV1
  79. http://remiya.com/soap/default?wsdl&services=salesShipmentRepositoryV1
  80. http://remiya.com/soap/default?wsdl&services=salesShipmentManagementV1
  81. http://remiya.com/soap/default?wsdl&services=salesShipmentCommentRepositoryV1
  82. http://remiya.com/soap/default?wsdl&services=salesShipmentTrackRepositoryV1
  83. http://remiya.com/soap/default?wsdl&services=salesTransactionRepositoryV1
  84. http://remiya.com/soap/default?wsdl&services=catalogInventoryStockRegistryV1
  85. http://remiya.com/soap/default?wsdl&services=checkoutGuestShippingInformationManagementV1
  86. http://remiya.com/soap/default?wsdl&services=checkoutShippingInformationManagementV1
  87. http://remiya.com/soap/default?wsdl&services=checkoutTotalsInformationManagementV1
  88. http://remiya.com/soap/default?wsdl&services=checkoutGuestTotalsInformationManagementV1
  89. http://remiya.com/soap/default?wsdl&services=checkoutGuestPaymentInformationManagementV1
  90. http://remiya.com/soap/default?wsdl&services=checkoutPaymentInformationManagementV1
  91. http://remiya.com/soap/default?wsdl&services=integrationAdminTokenServiceV1
  92. http://remiya.com/soap/default?wsdl&services=integrationCustomerTokenServiceV1
  93. http://remiya.com/soap/default?wsdl&services=configurableProductLinkManagementV1
  94. http://remiya.com/soap/default?wsdl&services=configurableProductConfigurableProductManagementV1
  95. http://remiya.com/soap/default?wsdl&services=configurableProductOptionRepositoryV1
  96. http://remiya.com/soap/default?wsdl&services=salesRuleRuleRepositoryV1
  97. http://remiya.com/soap/default?wsdl&services=salesRuleCouponRepositoryV1
  98. http://remiya.com/soap/default?wsdl&services=salesRuleCouponManagementV1
  99. http://remiya.com/soap/default?wsdl&services=taxTaxRateRepositoryV1
  100. http://remiya.com/soap/default?wsdl&services=taxTaxRuleRepositoryV1
  101. http://remiya.com/soap/default?wsdl&services=taxTaxClassRepositoryV1
  102. http://remiya.com/soap/default?wsdl&services=giftMessageCartRepositoryV1
  103. http://remiya.com/soap/default?wsdl&services=giftMessageItemRepositoryV1
  104. http://remiya.com/soap/default?wsdl&services=giftMessageGuestCartRepositoryV1
  105. 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.