Walmart

Tags:

Updated:

6 minute read

Walmart is an American multinational retail corporation that operates a chain of hypermarkets, discount department stores, and grocery stores. Walmart offers a variety of features to serve the needs of our connected customers. They provide items at the lowest price in a most convenient way, no matter how you shop. Here are just a few ways by which they help customers save time and money :

  • Walmart App – From Walmart Pay to Mobile Express Returns, prescription refills and grocery orders with same-day pickup, they help you get more done with just the touch of a button.
  • Mobile Scan & Go – Shop and checkout with your phone in-store.
  • Curbside Pickup – Order online, pickup in store.
  • NextDay Delivery – In many markets, customers can enjoy fast, free shipping on eligible orders over a certain limit.
  • Walmart GoLocal – Walmart’s delivery as a service business that provides delivery to customers from businesses of all sizes.
  • Built for Better – An online shopping destination that makes it easy for customers to identify and shop for products that are built better for them.

Application configuration is an integral activity prior to the process of integration. If your chosen application is Walmart, credentials need to be provided for validating the agent. Here you will find the detailed description on how to configure the agents for the application Walmart, Troubleshooting issues, the attributes and its action.

Pre-requisites for Walmart Configuration

  1. Create an account in Walmart Marketplace and complete the registration process.
  2. Client ID and Client Secret of the application.
  3. Authorization and Authentication of the application.

How to get Client ID and Client Secret?

  1. Click My Account to log into the Developer Portal. config_1

  2. Click Add New Key For A Solution Provider to set permissions for the provider to generate a Client ID and Client Secret. config_2

  3. Specify specific permissions, or to take the defaults, click Submit. The Client ID and Client Secret will be generated. config_3

  4. Copy the Client ID and Client Secret to use them in the agent configuration.

How to get the Access Token Url?

  1. Navigate to Walmart API documentation.
  2. Expand the Token API, the Production URL will be used as the Access Token Url.

On-Premise Agent Configuration

Installation of On-Premise Agent

You need to install the agent on your local server. To Know about On-Premise Agent Configuration, Click here.

Configuring Walmart Application in OP Agent

  1. Create a processflow with Walmart as source or destination application, and deploy the processflow in On-Premise agent.
  2. Open the agent and click the checkbox in Settings Panel.
  3. Move into the App Configurational Panel of the agent and configure the details of the respective application.

Steps to Configure Walmart Credential in OP Agent

  1. In the App Configuration panel of the agent, click on the + button, beside the app Walmart.
    walmart_1
  2. On clicking the + button, the credential panel opens for the application Walmart.
    walmart_2
  3. Provide Base URL, Client ID, Client Secret, Access Token Url and Channel Type in the agent. ChannelType will be provided by Walmart while registering with the application. Use https://marketplace.walmartapis.com/v3/ca/ as Base Url and https://marketplace.walmartapis.com/v3/token as Access Token Url. The base url will change depending on the country you choose for walmart marketplace.
  4. After providing the credentials, click on Validate button. After the validating the credentials successfully, a message will be displayed confirming the same. Click on SAVE to save the credentials finally.

Following this process, the Walmart application can be configured in the OP agent.

Troubleshooting

  1. Agent validation may fail due to invalid Client ID and Client Secret. Check the credentials with the application.

  2. Some of the basic troubleshooting issues happens due to improper validations or even if it is accurately validated, and if processflow don’t sync properly. This basic issue resolves after removing the Temp and Cache files from the portal and from your system. Therefore after clearing all this, you need to deploy and excute the processflow again to perform the required business integration in a smooth and free-flowing way. For E.g. If the Source Application not Found in the log file appears, the probable cause is due to the presence of the Temp and Cache Files.

Attributes and Actions

While defining a connection to a particular API endpoint in Walmart, you require clear understanding about the data requirements and endpoint configurations. You can refer to this document to find all the endpoint details of your Walmart application. To define the endpoint in APPSeCONNECT you need to define Actions and Entities. Actions are specifically targetted for a particular endpoint while schema is the data needed to execute the API. Here are the list of some of the prepackaged API actions defined for you which you can easily plug and play while doing your integrations.

Endpoint Action Action Type Schema UI Help API Help
items items GET items Displays a list of all items by using either nextCursor or offset and limit query parameters. Items
orders orders GET orders Retrieves the details of all the orders for specified search criteria. Order
price price PUT price Updates the regular price for a given item. Price
inventory inventory GET inventory You can use this API to get the inventory for a given item. Inventory

Action Filter implementation

Data is fetched from source application using APIs, and as you are aware of, API provides filters which will allow you to specify a subset of data from the whole bunch of data created in the server, the same can be specified through Actions and Action filters. The Action generally defines the endpoint of the application which is being fetched, while the filters define the search criteria of the data. You can add these parameters in the action filter to define the search criteria.

  • General filters : It represents the overall filter criteria of the API. To define such filters, you do not need to specify anything special, just putting the field name and the value with the condition type is fine.

Let us consider any API of Walmart such as order, the request structure will look like :

{
          "purchaseOrderId": "1796277083022",
          "customerOrderId": "5281956426648",
          "customerEmailId": "3A31739D8B0A45A1B23F7F8C81C8747F@relay.walmart.com",
          "orderType": "REPLACEMENT",
          "originalCustomerOrderID": "1234567891234",
          "orderDate": 1568466571000,
          "shippingInfo": {
            "phone": "3155598681",
            "estimatedDeliveryDate": 1569438000000,
            "estimatedShipDate": 1568700000000,
            "methodCode": "Value",
            "postalAddress": {
              "name": "Kathryn Cole",
              "address1": "3258BWarners rd",
              "address2": "Garage",
              "city": "Warners",
              "state": "NY",
              "postalCode": "13164",
              "country": "USA",
              "addressType": "RESIDENTIAL"
            }
          },
          "orderLines": {
            "orderLine": [
              {
                "lineNumber": "4",
                "item": {
                  "productName": "Beba Bean Pee-pee Teepee Airplane - Blue - Laundry Bag",
                  "sku": "test1"
                },
                "charges": {
                  "charge": [
                    {
                      "chargeType": "PRODUCT",
                      "chargeName": "ItemPrice",
                      "chargeAmount": {
                        "currency": "USD",
                        "amount": 10
                      },
                      "tax": {
                        "taxName": "Tax1",
                        "taxAmount": {
                          "currency": "USD",
                          "amount": 0.8
                        }
                      }
                    }
                  ]
                },
                "orderLineQuantity": {
                  "unitOfMeasurement": "EACH",
                  "amount": "1"
                },
                "statusDate": 1568466647000,
                "orderLineStatuses": {
                  "orderLineStatus": [
                    {
                      "status": "Created",
                      "statusQuantity": {
                        "unitOfMeasurement": "EACH",
                        "amount": "1"
                      }
                    }
                  ]
                },
                "fulfillment": {
                  "fulfillmentOption": "S2H",
                  "shipMethod": "VALUE",
                  "pickUpDateTime": 1568919600000
                }
              }
            ]
          }
        }

Suppose you need to fetch 10 orders at a time from Walmart, you need to use limit as the key and in the value field provide any number. With this filtering condition, you can add more filtering condition using the and clause. In this scenerio, use createdStartDate and ~{CreatedDate('yyyy-MM-dd'T'HH:mm:ssZ',' -6')}~ as key value pair. ~{CreatedDate('yyyy-MM-dd'T'HH:mm:ssZ',' -6')}~ filters data on the basis of the date on which the order is created.