Test and Deploy Store Fulfillment for Adobe Commerce

After you have completed the onboarding process in your development environment, you can start the process to test and deploy the Store Fulfillment solution to your production environment.

Prerequisites

Before testing or synchronizing any information, stores, or orders, verify that you have completed the following tasks:

Prepare for testing

The connection configuration must be completed before you can create any test orders or perform integration testing. Before testing, you must also verify that your store data is synchronized.

  1. Synchronize Store Fulfillment sources.

    • Go to Stores > Sources.

    • Select Synchronize Store Fulfillment Sources.

  2. From the store grid, verify that stores been marked as Synced before creating test orders.

Sample Test Plan

Retailers validate the basic functionality of the Store Fulfillment solution during the configuration and test phases of a deployment. This sample test plan provides a starting point for testing. Add additional scenarios based on your requirements.

NOTE

After completing the initial onboarding for the Store Fulfillment solution or updating an existing installation, always test the application in a non-production environment before you deploy to production.

This sample test plan covers the following functional areas:

Functional Area Function Role
Inventory and Order Synchronization Inventory API Sync Adobe Commerce Admin
End-to-End Order Cancellation Workflows Customer, Admin, Store Associate
Admin Store Fulfillment App permissions Admin
Adobe Commerce Frontend Product Types Customer, Admin
Frontend Checkout
Check-In Form
Check-In Experience Customer, Admin
Store Assist App Order
Pick
Stage
and Handoff
Store Associate

Inventory API Synchronization

This section of the test plan covers inventory and order synchronization to verify that updates to pickup sources and stocks are synchronized correctly between Adobe Commerce and the Store Fulfillment solution.

Functional Area: Inventory and Order Synchronization

Role: Admin

Test type: All Positive

Function Test Scenario Expected results
Add pickup stock source Save a new pickup stock source. The real time sync sends the source details to the Walmart GIF service within 5 minutes.
Update existing pickup stock source Save updates to an existing pickup stock source. The real time sync operation sends the details to the Walmart GIF within 5 minutes
Pickup stock source
Is Synced status
Save updates to an existing pickup stock source. After a successful operation, the Is Synced column of the Manage Source page updates from No to Yes.
Modified stock reservation process Create and submit a new order for a product. The salable quantity for the product decreases accordingly.
New Order Push, API Sync—Customer order Customer submits a store pickup order.
  • In the Admin Order view, an Adobe Commerce Admin user sees that the Order Sync status updated to Sent
  • The order details log includes the message Order was sent to BOPIS solution for sync, it's not yet acknowledged yet.
New Order Push, API Sync—Admin submits order An Adobe Commerce Admin submits a pickup order.
  • In the Admin Order view, the Order Sync status updates to Sent.
  • The order details log includes the message Order was sent to BOPIS solution for sync, it's not yet acknowledged yet.
New Order Push, Exception Queue Identify several Virtual and downloadable products in the Adobe Commerce Admin that can be fulfilled through Adobe Commerce without requiring interaction with Fulfillment service (FaaS). These products are removed or flagged appropriately in the export to prevent a downstream conflict with the FaaS.

Order Cancellation workflows

This section of the test plan includes scenarios to test the end-to-end workflow for orders that are cancelled through Adobe Commerce.

Functional area: Adobe Commerce Admin

Role: End-to-End (Admin, Store Associate, Customer)

Test result type: Positive for all scenarios

Function Scenario Expected Results
Full order cancellation
  1. Place order.
  2. Wait until the order is synced.
  3. Verify invoice creation (if authorize and capture) receipt of invoice email.
  4. Create Credit Memo with all the ordered products from the Invoice view.
  • Order history updated with We refunded $X online. Transaction ID: transactionID and Received Cancel acknowledgment from the BOPIS solution.
  • Order status is Closed. (We have set PAYMENT REVIEW now.)
  • Credit memo created in Adobe Commerce. (Wait until cron works.)
  • If all items picked, then ready for pickup email DISPLAY COMMENT HISTORY shows Order is ready for pickup (CUSTOMER NOTIFIED flag is true.)
  • If all items not picked, then cancellation email and DISPLAY COMMENT HISTORY show Order has been canceled - all items were not available
  • CUSTOMER NOTIFIED flag is true.)
Partial Order Cancellation
  1. Place order with at least two products.
  2. Wait until the order is synced.
  3. Check that invoice was created (if authorize and capture) and invoice email received.
  4. Wait two hours for transaction settlement.
  5. Create Credit Memo with only part of the ordered products from the Invoice view.
  • Order history update: We refunded $X online. Transaction ID: transactionID
  • Order history update: Order notified as partly canceled at: Date and Hour
  • Receipt of order refund email: $x amount was refunded
  • Order status is Processing.
  • Credit memo created in Adobe Commerce (Wait until cron works).
  • If some items were not picked, confirm that the Ready for Pickup email with the nil pick or refund section is displayed. DISPLAY COMMENT HISTORY shows Order is ready for pickup, but some items not available..
  • CUSTOMER NOTIFIED flag is true.
Ready for Pickup

Full cancellation
(all products are set as picked with 0 qty)
  1. Place the order.
  2. Wait until the order is synced.
  3. Check that invoice was created (if authorize and capture) and invoice email received.
  4. Go to the Postman and run the Ready for Pickup request with all products set as picked with 0 qty.
  • Order history updated: We refunded $X offline
  • The order status is CLOSED.
  • The Credit Memo is created. (Wait until cron works.)
  • Refund email received: $x amount was refunded
  • Order Cancellation email sent.
Ready for Pickup - Partial cancellation

(Some products are picked, and some are picked with 0 qty)
  1. Place the order.
  2. Wait until the order is synced.
  3. Check that invoice was created (if authorize and capture) and invoice email received.
  4. Go to the Postman and run the Ready for Pickup request with part of the products set as picked with 0 qty and the rest of them picked.
  • Your order is ready for pickup with Ready for Pickup Items and Canceled Items tables.
  • The order status is READY FOR PICKUP.
  • Order history updated: We refunded $X offline.
  • Order history updated: Order notified as partly canceled at: Date and hour
  • Refund email received: $x amount was refunded
  • The credit memo is created. (Wait until cron works.)
Ready for Pickup - Partial Cancellation

Some products are picked, and some are picked with 0 qty)
  1. Place the order.
  2. Wait until the order is synced.
  3. Check that invoice was created (if authorize and capture) and invoice email received.
  4. Go to the Postman and run the Ready for Pickup request with part of the products set as picked with 0 qty and the rest of them picked.
  • Your order is ready for pickup with Ready for Pickup Items and Canceled Items tables.
  • The order status is READY FOR PICKUP.
  • Order history updated: We refunded $X offline.
  • Order history updated: Order notified as partly canceled at: Date and hour
  • Refund email received: $x amount was refunded
  • The credit memo is created. (Wait until cron works.)
Dispensed (during dispensation)

Full cancellation (all products are set as rejected)
  1. Place the order.
  2. Wait until the order is synced.
  3. Check that invoice was created (if authorize and capture) and invoice email received.
  4. Go to the Postman and run the Ready for Pickup request with all the products set as picked.
  5. Open your mailbox, find the Ready for Pickup email. Then, click **Confirm Arrival**.
  6. Check in.
  7. Go to Postman and run the Dispensed request with all the products set as rejected.
  • Order history updated: We refunded $X offline.
  • Refund email received: $x amount was refunded
  • Status set to CLOSED.
  • Credit Memo created. (Wait until cron works.)
Dispensed (during dispensation)

Partial Cancellation
(Some products are dispensed; some are rejected.)
  1. Place the order.
  2. Wait until the order is synced.
  3. Check that invoice was created (if authorize and capture) and invoice email received.
  4. Go to Postman, and run the Ready for Pickup request with all the products set as picked.
  5. Open your mailbox. Find the Ready for Pickup email, and select Confirm Arrival.
  6. Check in.
  7. Go to the Postman, and run the Dispensed request with some products set to dispensed and some set to rejected
  • Order history updated: We refunded $X offline
  • Order notified as partly canceled at: Date and Hour
  • Refund email received: $x amount was refunded
  • Order Status set to Ready for pickup Dispensed
  • Credit Memo created. (Wait until cron works.)
  • New RMA After return (full)
    1. Place the order.
    2. Wait until the order is synced.
    3. Verify that the invoice was created (if authorize and capture) and invoice email received.
    4. Pick all the products with Postman.
    5. Check in.
    6. Make a dispense.
    7. Go to order, and selectCreate returns=
    8. Create the RMA.
    • The RMA was created and is displayed below the Returns tab on the Order view.
    • Customer received RMA confirmation email.
    New RMA After return — Partial
    1. Place the order.
    2. Wait until the order is synced.
    3. Check that invoice was created (if authorize and capture) and invoice email received.
    4. Pick all the products with Postman.
    5. Check in.
    6. Make a dispense.
    7. Go the order, and select Create returns
    8. Create the RMA with part of the ordered products.
    • RMA created and displayed below the Returns tab on the Order view.
    • Customer received the RMA confirmation email.
    • After creating RMA, get the RMA authorization: From the Admin, go to Sales > Returns. Select the RMA that you created and authorize it.
    • Verify that customer received the RMA authorization confirmation email.
    • Check that the refund was added to the transactions and order history.

    Store Fulfillment App permissions

    This section of the test plan covers the account management for Store Fulfillment App Users.

    • Confirm that a Store Associate can authenticate with a new user account created from the Adobe Commerce Admin.
    • Confirm that updates to existing accounts are successfully applied.

    Functional area: Adobe Commerce Admin

    Role: Admin, Store Associate

    Test type: All positive

    Function Scenario Expected Results
    User Account Management - Create Account

    1. Admin — Log into the Adobe Commerce Admin
    2. Go to System > Store Fulfillment App Permissions > All Store Fulfillment App Users
    3. Add New User.
    • Account successfully created.
    • New User account is displayed on the Store Fulfillment Users dashboard.
    • Store Associate log in to the Store Assist app with new user account.
    User Account Management - Update existing user account
    1. Log into the Adobe Commerce Admin with Admin user account.
    2. Go to System > Store Fulfillment App Permissions > All Store Fulfillment App Users.
    3. In the User account list, open an existing active User account by selecting Edit.
    4. Disable the account by changing Is Active to No.
    • On the Store Fulfillment App Users dashboard, the status for the updated account changed to Inactive.
    • Store Associate cannot log in to the Store Assist app with the inactive account credentials.

    Adobe Commerce Product Types

    The test scenarios for Adobe Commerce Product Types verify that customers see the correct product, stock, and delivery method information for different product types:

    • Configurable
    • Grouped
    • Virtual
    • Bundle products in the Adobe Commerce storefront.

    Functional area: Adobe Commerce Frontend

    Role: Store Assist App User (Store Associate)

    Test type: All positive

    Function Scenario Comments
    Configurable products
    • Verify that user can see only those configurable options, which source is enabled, stock is assigned and that there are some items in stock—check child products.
    • Verify that when selecting a different store, options that are not available are shown as crossed out.
    • Verify that if user selects different store, configurable options get unselected.
    • Verify that if a configurable product is already in cart, and a user selects different store, the product show as out of stock.
    Grouped products
    • Verify that the Delivery methods and Add to cart button are disabled for the customer when all child products have qty set to 0.
    • Verify that the Delivery methods are enabled for the customer when at least one of child products has qty set to 0.
    • Verify that Store Pickup Delivery method is visible and active only for the products which have Available for Store Pickup enabled. (Check child product.)
    Virtual products Verify that virtual products do not offer the In-store Pickup delivery method.
    Bundle products
    • Verify that if at least one child product has Available for Store Pickup disabled, the Store Pickup delivery option is not available to the customer.
    • Verify that if at least one child product has Available for Home Delivery disabled, the Home Delivery option is not available for the customer.
    • Verify if at least one of the child products in a bundle is out of stock, the bundle (parent product) is also shown as Out of stock.

    Check-In Experience

    This section of the test plan covers the Check-In Experience for Store Pickup orders for the following capabilities:

    • Alternate pickup contact—Verify the workflow for adding an Alternate Pickup Contact and selecting a Preferred Contact on Store Pickup orders.

    • Check-in form—Verify the workflow for submitting a check-in request for Store pickup orders.

    Functional areas: Cart Checkout, Check-In Form for store pickup orders

    Role: Admin, Customer, Store Associate

    Test type: All positive

    Alternate Pickup Contact

    Functional area: Cart Checkout

    Role: Customer

    Test type: All positive

    Function Scenario Expected Results
    Alternate Pickup Contact
    Check-In
    A customer submits an order with the In-Store Pickup option. During the checkout process, the customer sees the Alternate Pickup Contact the option on the Shipping step.
    Alternate Pickup Preferred Contact, Check in A customer submits an order with the In-Store Pickup option. During checkout, the customer adds an Alternate Pickup Contact. During the checkout process, the customer sees the Preferred Contact option on the shipping step.
    Alternate Pickup Contact Details, Check in A customer submits an order with the In-Store Pickup option. During checkout, the customer selects Alternate Pickup Contact on the shipping step. The customer sees input options to enter contact details: First name, Last name, Phone, and Email.
    Alternate Pickup, Check in Email A customer submits an order with the In-Store Pickup option. During checkout, the customer selects Alternate Pickup Contact on the shipping step, adds the contact details, and submits the order. Both the customer and the alternate contact receive a Check-In Email for the order.
    Alternate Pickup, Order detail A customer submits an order with the In-Store Pickup option. During checkout, the customer selects Alternate Pickup Contact on the shipping step, adds the contact details, and submits the order. Admin sees the additional contact information on the saved order.
    Alternate Pickup Contact, Store Associate order view A customer submits an order with the In-Store Pickup option. During checkout, the customer selects Alternate Pickup Contact on the shipping step, adds the contact details, and submits the order. The Store Associate can see the additional contact information on the order in FaaS/ChaaS.

    Check-in Form

    Functional area: Check-In Form

    Role: Customer

    Test type: All positive

    Function Scenario Expected Results
    Check in Action—Submit request On the check-in form, a customer completes all required fields, and submits the request. Customer receives a success response.
    Check in Action—View request details A customer successfully submits a check-in request. The order status updates in the FaaS system, and the Store Associate can see the check-in request details in the FaaS.
    Check in Action—Submit request only once After submitting a check-in request for an order, a customer selects the link to check-in a second time. On the Check-In form, the customer does not see an option to edit or resubmit the form.
    Check in Action—Confirm Arrival An in-store pickup order is marked ready for pickup in the FaaS. The customer receives a Ready for Pickup email, and selects Confirm Arrival. The customer sees the Check-In form for the order.

    Store Assist app

    This section of the test plan covers scenarios for testing order, pick, and handoff workflows in the Store Assist App.

    Functional area: Store Assist App

    Role: Store Associate

    Test type: All positive

    Function Scenario Expected Results
    Single order picking—happy path, curbside pickup Pick single and multi-quantity items. No nil picks, and curbside pick-up (with staging).
    Multi order picking—happy path, curbside pickup Single and multi-quantity items. No nil picks, and curbside pick-up (with staging)
    Single order picking—happy path in-store pickup Single and multi-quantity items. No nil picks, and instore pick-up (with staging)
    Multi order picking—happy path, in-store pickup Pick single and multi-quantity items. No nil picks, and curbside pick-up (with staging).
    Single order picking—not happy path, in-store pickup Pick single and multi-quantity items with partial and nilpick and instore pick up (with staging)
    Multi order picking—not happy path–curbside pickup Pick single and multi-quantity items with partial and nilpick and instore pick up (with staging)
    Single order picking—not happy path, curbside pickup Pick single and multi-quantity items with partial and nilpick and curbside pick up (with staging)
    Order placed - canceled before picking
    Order placed - canceled before handoff
    Order placed - search in order module
    Order placed - search and manual check in for handoff
    Order placed - all items nilpicked or not available marked by the picker
    Order placed with bundle items -picking and handoff
    Order placed - Hand off with rejection
    Order placed - Hand off with rejection of all items

    Deploy

    After you have verified that the solution has been configured and tested to your specifications, you are ready to deploy from staging to production.

    Deployment and testing vary depending on your infrastructure and capabilities.

    TIP

    For deployment guidelines, checklists, and best practices for Adobe Commerce on cloud infrastructure projects, see Deploy your store in the Adobe Commerce Developer documentation.

    On this page