Access to add and change pages is restricted. See: https://cwiki.apache.org/confluence/display/OFBIZ/Wiki+access

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 35 Next »

Purpose

The purpose of this document is to list the high-level API endpoints required for headless commerce(B2C). This will helps in finalizing API design.

API Endpoints

Authentication

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 EndpointDescriptionTasksStatusPhase
Customer Profile
1POST /customersTo register the customer.
PlanningI
2GET /customers/password-hintTo get the password hint.
PlanningI
3POST /customers/reset-passwordTo get the reset password link on the registered email.
PlanningI
4POST /customers/{customerPartyId}/change-passwordTo change the password.
PlanningI
5POST /customers/{customerPartyId}/profileTo get the complete profile of a customer, personal information, addresses, emails, phones, etc. There should be one filter to bring specific information like only personal information, only addresses, etc.
PlanningI
6PUT /customers/{customerPartyId}To update the customer's personal information.
PlanningI
7POST /customers/{customerPartyId}/addressesTo create the postal address.
PlanningI
8PUT /customers/{customerPartyId}/addresses/{contactMechId}To update the postal address and to mark the default address.
PlanningI
9DELETE /customers/{customerPartyId}/addresses/{contactMechId}To delete/expire the postal address.
PlanningI
10POST /customers/{customerPartyId}/phonesTo create a telecom number.
PlanningI
11PUT /customers/{customerPartyId}/phones/{contactMechId}To update a telecom number.
PlanningI
12DELETE /customers/{customerPartyId}/phones/{contactMechId}To delete a telecom number
PlanningI
13POST /customers/{customerPartyId}/emailsTo create an email address.
PlanningI
14PUT /customers/{customerPartyId}/emails/{contactMechId}To update an email address.
PlanningI
15DELETE /customers/{customerPartyId}/emails/{contactMechId}To remove an email address.
PlanningI
16POST /customers/{customerPartyId}/contact-informationTo add the other contact information like electronic address, Internet IP address, Internet Domain Name, Web Url, LDAP address, File server, etc. 
PlanningI
17PUT /customers/{customerPartyId}/contact-information/{contactMechId}To update the other contact information like electronic address, Internet IP address, Internet Domain Name, Web Url, LDAP address, File server, etc.
PlanningI
18DELETE /customers/{customerPartyId}/contact-information/{contactMechId}To remove the other contact information like electronic address, Internet IP address, Internet Domain Name, Web Url, LDAP address, File server, etc.
PlanningI
19POST /customers/{customerPartyId}/sendEmailTo send the mail from the profile page to the added email address.
PlanningI
20POST /customers/{customerPartyId}/credit-cardsTo create a credit card.
PlanningI
21PUT /customers/{customerPartyId}/credit-cards/{paymentMethodId}To update the credit card detail and to mark it as default.
PlanningI
22DELETE /customers/{customerPartyId}/credit-cards/{paymentMethodId}To remove a credit card.
PlanningI
23POST /customers/{customerPartyId}/gift-cardsTo create a gift card.
PlanningI
24PUT /customers/{customerPartyId}/gift-cards/{paymentMethodId}To update the gift card detail and to mark it as default.
PlanningI
25DELETE /customers/{customerPartyId}/gift-cards/{paymentMethodId}To remove the gift card.
PlanningI
26POST /customers/{customerPartyId}/eft-accountsTo create an EFT account.
PlanningI
27PUT /customers/{customerPartyId}/eft-accounts/{paymentMethodId}To update the EFT account detail and to mark it as default.
PlanningI
28DELETE /customers/{customerPartyId}/eft-accounts/{paymentMethodId}To remove the EFT account.
PlanningI
29POST /customers/{customerPartyId}/shipment-methods/{shipmentMethodId}To mark the default shipping method if there is a default shipping address.
PlanningI
30POST /customers/{customerPartyId}/contact-list/{contactListId}/subscriptionTo subscribe to the contact list.
PlanningI
31PUT /customers/{customerPartyId}/contact-list/{contactListId/subscriptionTo unsubscribe the contact list.
PlanningI
Order History & Return
1GET /customers/{customerPartyId}/ordersTo fetch all the orders of a customer.
PlanningI
2GET /customers/{customerPartyId}/orders/{orderId}To fetch the order detail.
PlanningI
3PUT /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
4GET /customers/{customerPartyId}/orders/{orderId}/order-pdfTo get the order pdf.
PlanningI
5GET /customers/{customerPartyId}/orders/{orderId}/invoice-pdfTo get the invoice pdf.
PlanningI
6POST /customers/{customerPartyId}/returnsTo create a return.
PlanningI

Catalog

Sr No.API EndpointDescriptionTasksStatusPhase
Catalog
1GET /catalogsTo get the list of catalogs.
PlanningI
2GET /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
4GET  /catalogs/{catalogId}/feature-productsTo get the feature products of a catalog.
PlanningI
5GET /catalogs/{catalogId}/category-hierarchyTo get the category hierarchy of a catalog.
PlanningI
6GET /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
7GET /products/{productId}To get the product detail.
PlanningI
8POST /products/{productId}/reviewsTo add a review of a product.
PlanningI
9GET /products/{productId}/reviewsTo get the reviews of a product.
PlanningI
10GET /products/{productId}/associated-productsTo get the list of cross-sell/upsell products.
PlanningI
11POST /products/{productId}/product-tagsTo add a tag for a product.
PlanningI
12GET /products/{productId}/product-tagsTo get all the tags of a product.
PlanningI
13GET /products/product-tagsAll the product tags for the tag cloud.
PlanningI
14GET /offersTo list the special offers
PlanningI
15GET /offers/{promotionId}To get the complete detail of a particular offer
PlanningI
16POST /sendMailFor Tell a Friend functionality
PlanningI
17POST /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.
PlanningI
19DELETE /products/compare-list/{productId}To remove a product from the compare list.
PlanningI

Shopping List and Quotes

Sr No.API EndpointDescriptionTasksStatusPhase
Shopping List
1POST /shopping-listsTo create a new shopping list.
PlanningI
2GET /shopping-listsTo get the list of shopping lists.
PlanningI
3GET /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.
PlanningI
4PUT /shopping-lists/{shoppingListId}To update the shopping list detail. Recurrence info can also be set from this API.
PlanningI
5POST /shopping-lists/{shoppingListId}/itemsAdd an item to the shopping list.
PlanningI
6GET /shopping-lists/{shoppingListId}/itemsGet the list of items on a shopping list.
PlanningI
7PUT /shopping-lists/{shoppingListId}/items/{itemId}Update the particular item on the shopping list.
PlanningI
8DELETE /shopping-lists/{shoppingListId}/items/{itemId}Remove the particular item from the shopping list.
PlanningI
Quote
1POST /quote-requestsQuotes Request can be created from the shopping list and from the cart.  This API will create a quote request.
PlanningI
2GET /quote-requestsTo get the list of quote requests(request history).
PlanningI
3GET /quote-requests/{requestId}To get the detail of a quote request.
PlanningI
4GET /quotesTo get the list of quotes.
PlanningI
5GET /quotes/{quoteId}To get the detail of a quote.
PlanningI
6POST /order-quotesTo create an order from the quote.
PlanningI

Shopping Cart & 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 /carts

PlanningI
2GET /carts/{cartReference}

PlanningI
3DELETE /carts/{cartReference}

PlanningI
4POST /carts/{cartReference}/itemsFor adding products and other order adjustments like shipping charges, tax, etc.
PlanningI
5GET /carts/{cartReference}/items

PlanningI
6PUT /carts/{cartReference}/items/{itemSeqId}

PlanningI
7DELETE /carts/{cartReference}/items/{itemSeqId}

PlanningI
8POST /carts/{cartReference}/promotionsTo apply the promo code on the cart.
PlanningI
9DELETE /carts/{cartReference}/promotions/{itemSeqId}To remove an applied promotion.
PlanningI
10POST /carts/{cartReference}/items/shopping-list/{shoppingListId}This will add all the items of a given shopping list to the cart.
PlanningI
11POST /carts/{cartReference}/items/order/{orderId}This will add all the items of a given past order to the cart.
PlanningI
Checkout
1POST /carts/{cartReference}/ship-groupsTo create a new ship group in case of split shipment.
PlanningI
2GET /carts/{cartReference}/ship-groupsTo get the ship groups with items.
PlanningI
3POST /carts/{cartReference}/ship-groups/{shipGroupSeqId}/shipping-addressTo add the shipping address.
PlanningI
4POST /carts/{cartReference}/ship-groups/{shipGroupSeqId}/itemsTo move items from one ship group to another in case of split shipment.
PlanningI
5POST /carts/{cartReference}/ship-groups/{shipGroupSeqId}/shipping-instructionsTo add special instructions, gift message in case of a gift, split preferences(ship all items together or ship items when available)
PlanningI
6PUT /carts/{cartReference}/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
7GET /shipping-methods}To get the shipping methods.
PlanningI
8POST /carts/{cartReference}/ship-groups/{shipGroupSeqId}/shipping-methodTo add/update the shipping method.
PlanningI
9GET /payment-optionsTo get the list of supported payment options.
PlanningI
10POST /carts/{cartReference}/payment-methodsTo add a payment method. The combination of the gift card and other payment methods are supported as of now.
PlanningI
11POST /checkoutTo place the order.
PlanningI
Anonymous Checkout
1POST /carts/{cartReference}/guest/personal-informationSet the anonymous user's detail for the order. Name, phone, email, etc.
PlanningI
2PUT /carts/{cartReference}/guest/personal-information

PlanningI
3POST /carts/{cartReference}/guest/shipping-address

PlanningI
4PUT /carts/{cartReference}/guest/shipping-address

PlanningI
5POST /carts/{cartReference}/guest/payment-informaion

PlanningI
6PUT /carts/{cartReference}/guest/payment-informaion

PlanningI
  • No labels