Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Sr No.API EndpointDescriptionTasksStatusPhase
1POST /guest-tokenThis API will return a token for a guest account.
PlanningI
2POST /customer-tokenThis API will return a token for the registered user.
PlanningI
3POST /refresh-tokenIn case we need to update the token. As JWT token ideally contains a certain expiry time. So if the user is active then instead of getting him to log out, this API can generate a new token from the existing token.
PlanningI


Customer

Sr No.API EndpointDescriptionTasks/PRsStatusPhase
Customer Profile
1POST /customersTo register the customer.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
2GET
/customers/password-hintTo get the password hint.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI3POST /customers/reset-passwordTo get the reset password link on the registered email.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI4POST /customers/{customerPartyId}/change-passwordTo change the password.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI5POST
/customers/{customerPartyId}
/profile
To get the
complete profile of a customer,
customer's personal information, addresses, emails, phones
, etc. There should be one filter to bring specific information like only personal information
,
only addresses,
etc.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
6
3PUT /customers/{customerPartyId}To update the customer's personal information.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
7
4POST /customers/
{customerPartyId}/addressesTo create the postal address.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI8PUT /customers/{customerPartyId}/addresses/{contactMechId}
reset-passwordTo get the reset password link on the registered email
To update the postal address and to mark the default address
.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
9DELETE /customers/{customerPartyId}/addresses/{contactMechId}To delete/expire the postal address.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI10
5POST /customers/{customerPartyId}/
phonesTo create a telecom number.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI11PUT /customers/{customerPartyId}/phones/{contactMechId}
change-passwordTo change the password
To update a telecom number
.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
12
6
DELETE
GET /customers/{customerPartyId}/
phones/{contactMechId}To delete a telecom numberhttps://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
shipping-addressesTo get the customer's shipping addresses
13POST /customers/{customerPartyId}/emailsTo create an email address.
https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
14PUT /customers/{customerPartyId}/emails/{contactMechId}To update an email address.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI15DELETE /customers/{customerPartyId}/emails/{contactMechId}To remove an email address.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI16
7POST /customers/{customerPartyId}/
contact
shipping-
information
addressesTo
add the other contact information like electronic address, Internet IP address, Internet Domain Name, Web Url, LDAP address, File server, etc. 
create the shipping address.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
17
8PUT /customers/{customerPartyId}/
contact
shipping-
information
addresses/{contactMechId}To update the
other contact information like electronic address, Internet IP address, Internet Domain Name, Web Url, LDAP address, File server, etc
shipping address.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
18
9DELETE /customers/{customerPartyId}/
contact
shipping-
information
addresses/{contactMechId}To
remove the other contact information like electronic address, Internet IP address, Internet Domain Name, Web Url, LDAP address, File server, etc
delete/expire the shipping address.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
19
10POST /customers/{customerPartyId}/
sendEmailTo send the mail from the profile page to the added email address.PlanningI
payment-methodsTo save a payment method e.g. credit card, gift card, eft account
20POST /customers/{customerPartyId}/credit-cardsTo create a credit card.
https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
21
11
PUT
GET /customers/{customerPartyId}/
credit-cards/{paymentMethodId}
payment-methodsTo
update the credit card detail and to mark it as default.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI22DELETE /customers/{customerPartyId}/credit-cards/{paymentMethodId}To remove a credit card.https://github.com/apache/ofbiz-plugins/pull/45In ProgressI23POST /customers/{customerPartyId}/gift-cardsTo create a gift card.
get the user's payment methods eg. saved credit cards, gift cards, eft accountshttps://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
24
12PUT /customers/{customerPartyId}/
gift
payment-
cards
methods/{paymentMethodId}To update the
gift card detail and to mark it as default
payment method detail.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
25
13DELETE /customers/{customerPartyId}/
gift
payment-
cards
methods/{paymentMethodId}To remove
the gift card.https://github.com/apache/ofbiz-plugins/pull/45In ProgressI26POST /customers/{customerPartyId}/eft-accountsTo create an EFT
a saved credit card, gift card, eft account.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
27
14
PUT
GET /customers/{customerPartyId}/
eft-accounts/{paymentMethodId}To update the EFT account detail and to mark it as default.https://github.com/apache/ofbiz-plugins/pull/45In Code ReviewI
order-historyTo
28DELETE /customers/{customerPartyId}/eft-accounts/{paymentMethodId}To remove the EFT account.https://github.com/apache/ofbiz-plugins/pull/45In ProgressI29POST /customers/{customerPartyId}/shipment-methods/{shipmentMethodId}To mark the default shipping method if there is a default shipping address.PlanningI30POST /customers/{customerPartyId}/contact-list/{contactListId}/subscriptionTo subscribe to the contact list.PlanningI31PUT /customers/{customerPartyId}/contact-list/{contactListId/subscriptionTo unsubscribe the contact list.PlanningIOrder History & Return1GET /customers/{customerPartyId}/ordersTo 4GET /customers/{customerPartyId}/orders/{orderId}/order-pdfTo get the order pdf.PlanningI5GET /customers/{customerPartyId}/orders/{orderId}/invoice-pdfTo get the invoice pdf.PlanningI6POST /customers/{customerPartyId}/returnsTo create a return.Planning
fetch all the orders of a customer.
PlanningI2GET /customers/{customerPartyId}/orders/{orderId}To fetch the order detail.PlanningI3PUT /customers/{customerPartyId}/orders/{orderId}To update the order. Right now the support to cancel an item(partially or fully) is there. That should be handled in this API.PlanningI

In ProgressI


Catalog

Sr No.API EndpointDescriptionTasksStatusPhase
Catalog
1GET /
catalogs
categoriesTo get the
list of catalogs.PlanningI2GET /catalogs/{catalogId}To get the feature categories, feature products,
category hierarchy
in a single call
.
PlanningI
3GET /catalogs/{catalogId}/feature-categoriesTo get the feature categories of a catalog.PlanningI
2GET /categories/{categoryId}This will fetch all the products of a category
4GET  /catalogs/{catalogId}/feature-productsTo get the feature products of a catalog.PlanningI5GET /catalogs/{catalogId}/category-hierarchyTo get the category hierarchy of a catalog
.
PlanningI
6
3GET /productsThis API will have support for the search string and other additional filters. This API will also bring the products of a selected category if provided.
PlanningI
7
4GET /products/{productId}To get the product detail.
PlanningI
8
5POST /products/{productId}/reviewsTo add a review of a product.
PlanningI
9GET /products/{productId}/reviewsTo get the reviews of a product.PlanningI10GET /products/{productId}/associated-productsTo get the list of cross-sell/upsell products.PlanningI11POST /products/{productId}/product-tagsTo add a tag for a product.PlanningI12GET /products/{productId}/product-tagsTo get all the tags of a product.PlanningI13GET /products/product-tagsAll the product tags for the tag cloud.PlanningI14
6GET /offersTo list the special
offersPlanningI15GET /
offers
/{promotionId}To get the complete detail of a particular offerPlanningI16POST /sendMailFor Tell a Friend functionalityPlanningI17POST /products/compare-listTo create a compare list and to add a product to it
.
PlanningI
18GET /products/compare-listTo get the list of added products with detail for the comparison view.PlanningI19DELETE /products/compare-list/{productId}To remove a product from the compare list.PlanningI

...


Wishlist

Shopping Listshopping-listsAdd an item to the shopping listshopping-listsshoppingListIditemsTo get the list of quote requests(request history)
Sr No.API EndpointDescriptionTasksStatusPhase
1POST /To create a new shopping list.PlanningI2GET /shopping-listsTo get the list of shopping lists.PlanningI3GET /shopping-lists/{shoppingListId}To get the detail of a shopping list. This will also bring the list of available interval/frequency data for setting the recurrence detail using the update shopping list API.PlanningI4PUT /shopping-lists/{shoppingListId}To update the shopping list detail. Recurrence info can also be set from this API.PlanningI5POST /shopping-lists/{shoppingListId}/itemscustomers/{customerPartyId}/wishlistTo Create a wishlist.
Planning
1PUT /customers/{customerPartyId}/wishlist/{wishlistId}To add a product to the wishlist.
PlanningI
62GET DELETE /customers/{customerPartyId}/Get the list of items on a shopping list.PlanningI7PUT /shopping-lists/{shoppingListId}/items/{itemId}Update the particular item on the shopping list.PlanningI8DELETE /shopping-lists/{shoppingListId}/items/{itemId}Remove the particular item from the shopping list.PlanningI
Quote
wishlist/{wishlistId}/{productId}To remove a product from the wishlist1POST /quote-requestsQuotes Request can be created from the shopping list and from the cart.  This API will create a quote request.PlanningI2GET /quote-requests.
PlanningI
3GET /quote-requestscustomers/{requestId}To get the detail of a quote request.PlanningI4GET /quotesTo get the list of quotes.PlanningI5GET /quotes/{quoteIdcustomerPartyId}/wishlist/{wishlistId}To get the detail of a quote.PlanningI6POST /order-quotesTo create an order from the quotewishlist.
PlanningI

...


Checkout

Note: The below API endpoints are written considering the Object-Oriented implementation of Shopping Cart. We need to identify the best way to store the shopping cart object as the user session won't be in the picture here. One way to introduce a new table to keep the cart object with a unique cart ID. For better performance cache can also be used efficiently. The cart object should have the last updated timestamp so that a clear policy to remove the abandoned cart can be imposed.

Sr No.API EndpointDescriptionTasksStatusPhase
Shopping Cart
1POST /
cartsPlanningI2GET /carts/{cartReference}PlanningI3DELETE /carts/{cartReference}PlanningI4POST /carts/{cartReference}/itemsFor adding products and other order adjustments like shipping charges, tax, etc.PlanningI5GET /carts/{cartReference}/itemsPlanningI6PUT /carts/{cartReference}/items/{itemSeqId}PlanningI7DELETE /carts/{cartReference}/items/{itemSeqId}PlanningI8POST /carts/{cartReference}/promotionsTo apply the promo code on the cart.PlanningI9DELETE /carts/{cartReference}/promotions/{itemSeqId}To remove an applied promotion.PlanningI10POST /carts/{cartReference}/items/shopping-list/{shoppingListId}This will add all the items of a given shopping list to the cart.PlanningI11POST /carts/{cartReference}/items/order/{orderId}This will add all the items of a given past order to the cart.PlanningICheckout1POST /carts/{cartReference}/ship-groupsTo create a new ship group in case of split shipment.PlanningI2GET /carts/{cartReference}/ship-groupsTo get the ship groups with items.PlanningI3POST /carts/{cartReference}/ship-groups/{shipGroupSeqId}/shipping-addressTo add the shipping address.PlanningI4POST /carts/{cartReference}/ship-groups/{shipGroupSeqId}/itemsTo move items from one ship group to another in case of split shipment.PlanningI5POST /carts/{cartReference}/ship-groups/{shipGroupSeqId}/shipping-instructions
ordersTo Create an order with all the necessary detail (items, shipping address, payment information, etc.
To add special instructions, gift message in case of a gift, split preferences(ship all items together or ship items when available
)
PlanningI
6
2
PUT
PATCH /
carts
orders/{
cartReference
orderId}/
ship-groups/{shipGroupSeqId}/shipping-instructionsTo update special instructions, gift message in case of a gift, split preferences(ship all items together or ship items when available)PlanningI
statuses/CANCELTo cancel an order
7GET /shipping-methods}To get the shipping methods
.
PlanningI
8
3
POST
PATCH /
carts
orders/{
cartReference
orderId}/
ship-groups/{shipGroupSeqId}/shipping-methodTo add/update the shipping method.PlanningI9GET /payment-optionsTo get the list of supported payment options.PlanningI10POST /carts/{cartReference}/payment-methodsTo add a payment method. The combination of the gift card and other payment methods are supported as of now.PlanningI
items/statuses/CANCELTo Cancel order items.
11POST /checkoutTo place the order.PlanningIAnonymous Checkout1POST /carts/{cartReference}/guest/personal-informationSet the anonymous user's detail for the order. Name, phone, email, etc.PlanningI2PUT /carts/{cartReference}/guest/personal-informationPlanningI3POST /carts/{cartReference}/guest/shipping-addressPlanningI4PUT /carts/{cartReference}/guest/shipping-addressPlanningI5POST /carts/{cartReference}/guest/payment-informaionPlanningI6PUT /carts/{cartReference}/guest/payment-informaion

PlanningI