Enable In-Store Pickup

In-store Pickup enables shoppers to pick up their items from a nearby store, rather than wait for a delivery.

How to Enable In-Store Pickup 

Adobe Commerce (M2)

  1. Follow the official Adobe Commerce (M2) In-Store Delivery setup guide.
  2. Deploy the Bolt plugin with the In-store Pickup feature on your site.
  3. Select products eligible for In-store Pickup using one of the following methods:

In-Store Pickup Only Enablement

  1. Log in to the Adobe Commerce (M2) dashboard.
  2. Navigate to Stores > Configuration > Sales > Payment Methods > Bolt Pay > Third Party Modules Support.
  3. Add the attribute name Hard Goodsto the field Exclude item groups from product page checkout.
  4. Save.

Any products marked as Hard Goods are now eligible for ship to store.

Category Enablement

  1. Log in to the Adobe Commerce (M2) dashboard.
  2. Navigate to Catalog > Categories.
  3. Choose a category.
  4. Find Bolt Pay Options.
  5. Set the value of Shipment Type to Pick in Store.
  6. Save.

Any products in the updated category are now eligible for ship to store.

Product-Level Enablement

  1. Log in to the Adobe Commerce (M2) dashboard.
  2. Navigate to Catalog > Categories.
  3. Choose a category.
  4. Find Bolt Pay Options.
  5. Select a product.
  6. Set the value of Shipment Type to Pick in Store.
  7. Save.

Direct API

In-Store Pickup requires responding to Bolt’s POST request for an order’s shipping details from your Merchant API. In addition to listing delivery options, the response can also contain pickup options. 

  1. Ensure you have set up the Split Shipping and Tax endpoints for your Merchant API.
  2. Update your order.shipping (/order_create) response to include the object pickup_options with an array of stores available, based on the shopper’s address. 

Stores that are within 50 miles of the shopper are presented as pickup options. If no store is within 50 miles, the In-Store Pickup option is not displayed.

Request Example

The following request is sent to your order.shipping (/order_create) Merchant API endpoint from Bolt when a user selects the In-Store Pickup option. This request contains an order_token, shipping_address, cart and request_source.

{
  "event": "order.shipping",
  "data": {
    "order_token": "a2b3dDc4cA5e6fg78Bg9hj0kl",
    "shipping_address": {
      "street_address1": "42 Wallaby Way",
      "street_address2": "42 Wallaby Way",
      "street_address3": "42 Wallaby Way",
      "street_address4": "42 Wallaby Way",
      "locality": "Wayne County",
      "region": "Quebec",
      "postal_code": "11209",
      "country_code": "US",
      "country": "Canada",
      "name": "Charlotte Charles",
      "first_name": "Charlotte",
      "last_name": "Charles",
      "company": "ACME Corp.",
      "phone": "867-5309",
      "email": "my.email@gmail.com"
    },
    "cart": {
      "total_amount": 9900,
      "items": [
        {
          "reference": "1123",
          "name": "Blue Hat",
          "options": null,
          "total_amount": 9900,
          "unit_price": 500,
          "tax_amount": 230,
          "quantity": 3,
          "uom": null,
          "upc": null,
          "sku": "SKU-11021",
          "isbn": "12-345-678-90123",
          "brand": "Bolt Swagstore",
          "manufacturer": "Bolt Factory",
          "category": "hats",
          "tags": [
            "red"
          ],
          "properties": {
            "property1": "metallic",
            "property2": "rust-resistant"
          },
          "color": "Red",
          "size": "XXL",
          "weight": 22,
          "weight_unit": "kg",
          "image_url": "https://boltswagstore.com/inventory/hats/red-hat.png",
          "details_url": "https://boltswagstore.com/inventory/hats/red-hat.png",
          "taxable": true,
          "tax_code": "tax-12345",
          "type": "physical",
          "item_group": "Ships Immediately",
          "has_dynamic_price": true
        }
      ],
      "tax_amount": 230,
      "billing_address_id": "address-1",
      "billing_address": {
        "street_address1": "42 Wallaby Way",
        "street_address2": "42 Wallaby Way",
        "street_address3": "42 Wallaby Way",
        "street_address4": "42 Wallaby Way",
        "locality": "Wayne County",
        "region": "Quebec",
        "postal_code": "11209",
        "country_code": "US",
        "country": "Canada",
        "name": "Charlotte Charles",
        "first_name": "Charlotte",
        "last_name": "Charles",
        "company": "ACME Corp.",
        "phone": "867-5309",
        "email": "my.email@gmail.com"
      }
    },
    "request_source": "checkout"
  }
}

Response Example

The following response returns only one in-store pickup option that is 2 miles away.

{
  "event": "order.shipping",
  "status": "success",
  "data": {
    "shipping_options": [
      {
        "service": "Option 1",
        "description": "The <span id=\"1\">most</span> popular choice",
        "cost": 770,
        "tax_amount": 230,
        "reference": "1123",
        "signature": "a1B2s3dC4f5g5D6hj6E7k8F9l0",
        "estimated_delivery_date": "08-30-2022",
        "tax_code": "tax-12345",
        "discount_by_membership": false,
        "default": true,
        "description_tooltips": [
          {
            "target": 1,
            "html_content": "Timeline may vary depending on <b>location</b>."
          }
        ]
      }
    ],
    "pickup_options": [
      {
        "reference": "1123",
        "signature": "a1B2s3dC4f5g5D6hj6E7k8F9l0",
        "cost": 770,
        "tax_amount": 230,
        "store_name": "Bolt Swag Store #47",
        "pickup_window_open": 1578904185,
        "pickup_window_close": 1578904185,
        "address": {
          "street_address1": "42 Wallaby Way",
          "street_address2": "42 Wallaby Way",
          "street_address3": "42 Wallaby Way",
          "street_address4": "42 Wallaby Way",
          "locality": "Wayne County",
          "region": "Quebec",
          "postal_code": "11209",
          "country_code": "US",
          "country": "Canada"
        },
        "distance": 2,
        "distance_unit": "miles"
      }
    ]
  }
}

📖On This Page