PromoAPIs - the way a REST API should be

PromoAPIs: the way a REST API should be

PromoAPIs (opens in a new tab) is a dream. The best API for Promotional Industry based on PromoStandards but it will overcome most of their limitations.

It will be using REST & JSON to start but it will combine services & methods in order to be a real RESTful interface.

GraphQL will be also provided.

Overall ideas

  • It will use PSRESTful (opens in a new tab) to populate all data to our service DB(making our API faster than the suppliers which usually are slow)
  • Products API combine several suppliers + will also allows search, filter, sort by the most important parameters

Endpoints examples

  • /products?sellable=true&closeout=false&modified_at__gte=2021-09-14T00:00:00&lead_time__lte=10&isOnDemand=Tue&export=True&search=t-shirt
  • /products/[product-id]/medias
  • /products/[product-id]/inventory?part_id=
  • /products/[product-id]/available-charges
  • /products/[product-id]/available-locations
  • /products/[product-id]/decoration-colors
  • /products/[product-id]/configurations/
  • /products/[product-id]/princings/
  • /orders/ (both Purchase Order and Order Status Detail)
  • /invoices/?voided=false&modified_at__gte=2021-09-14T00:00:00 (Combining the two methods of Invoice service)

Global Endpoints

  • /colors?supplier=HIT
  • /locations?supplier=HIT
  • /imprint-methods?supplier=HIT
  • /categories/?supplier=HIT
  • /brands/?supplier=HIT
  • /fob-points/?supplier=HIT
  • /charges/?supplier=HIT

List of Features

  • Be real restful instead of using the same names as PromoStandards
  • Caching of Product Data/Media Content, PPC, Inventory
  • Simpler Purchase Order API(generate good promo REST Payload based on simpler input)
  • Allow endpoints filtered by supplier for (available imprint methods, available locations, available decorations, fob points, charges, all categories)
  • Allow subscriptions to webhooks for:
    • Product Data(Instead of getProductDateModified)
    • Media Content(Instead of getMediaDateModified)
    • Order Status(instead of pulling using getOrderStatus)
    • OSN changes(instead of pulling using getOrderShipmentNotification)
  • Data Explorer similar to PSRESTful
  • Pricing Calculator similar to PSRESTful
  • Allow entering PO Numbers in the system(without really using PO service) so the client can keep track of order status from different suppliers in the same dashboard
  • Allow to create PO based on the information we have + manual data entry, the PO stays there
  • If using PO creation be able to see Order Status and OSN too
  • Add Semantic search
  • Add Recomendation system
  • Enhance the data by:
    • Adding Spanish product names, descriptions, keywords & marketing points
    • Improve Media classification using PSMEDx (opens in a new tab)