Skip to content
clockworkgeek edited this page Apr 19, 2018 · 20 revisions

A rough outline of resources to expose

  • Core / Stores (SOAP)
  • Core / Magento info (SOAP)
  • Core / Notification Inbox
  • Core / Translations
  • Core / URL Rewrites (incomplete)
  • Catalog / Category (SOAP)
  • Catalog / Category Tree (SOAP)
  • Catalog / Category Products (SOAP, REST but not for anchored categories)
  • Catalog / Products (SOAP, REST)
  • Catalog / Product Images (SOAP, REST)
  • Catalog / Product Attributes (SOAP)
  • Catalog / Product Custom Options (SOAP)
  • Catalog / Product Downloadable Links (SOAP)
  • Catalog / Product Relations (SOAP)
  • Catalog / Product Reviews
  • Catalog / Product Tags (SOAP)
  • Catalog / Products / Compare
  • Catalog / Products / Wishlist
  • Catalog / Search Terms
  • Cart (SOAP, REST but incomplete?)
  • Cart Coupons (SOAP)
  • Checkout (SOAP)
  • CMS Blocks
  • CMS Pages
  • Contact Us
  • Customers (SOAP, REST)
  • Customers / Address (SOAP, REST)
  • Customers / Groups (SOAP)
  • Directory of countries and regions (SOAP, tutorial)
  • Inventory (SOAP, REST)
  • Newsletters
  • Reports
  • Sales Orders (SOAP, REST)
  • Sales Orders / Credit Memos (SOAP)
  • Sales Orders / Invoice (SOAP)
  • Sales Orders / Shipments (SOAP)

More features to think about

  • Documentation
  • Caching
    At minimum there should be one of ETag or Last-Modified header. Also Cache-Control: public for not-so-dynamic shared resources such as Catalog data. Cart data is private and dynamic so definitely no caching there. Customer orders are private but mostly static so can be cached. Web server and client handle negotiation between them but Apache still calls PHP then possibly discards the body, we can save some processing by checking conditional headers too.
  • composer.json
  • Wrap Api resources as Api2 resources
    Use SOAP code but not require SOAP permissions and get some validation for free.
  • Multi-calls
    Probably for admin only.
  • Internationalisation
    Mostly for admins' benefit but also for error messages.
  • Flat tables
    Currently only for categories and products. Need to restrict attributes used.
  • Link header for pagination
    RFC5988
    Example
  • Catalog search
    Different from merely querying a product list, multiple fields are covered and there is a fulltext index involved. Searching creates statistics.
  • Customer ID
    How does each customer know who they are?
  • Split into more projects
    Maybe there are too many resources. Maybe devs don't want to install all at once.
  • Sandbox mode
  • Cache and Index Management

Bookmarks