Skip to content

Api references

Oleksandr Kravchuk edited this page Apr 12, 2020 · 4 revisions

API references for In-Store Pickup

InventoryInStorePickup service contracts

InventoryInStorePickup interfaces

  • GetPickupLocationsInterface - a service to retrieve a list of Pickup Locations, filtered by multiple criteria. The service is exposed as webapi.
  • SearchRequestInterface - data transfer object, container for AreaInterface, FiltersInterface, scope type and code criterias together with pagination and sorting. Can be extended with SearchRequestExtensionInterface.
  • SearchResultInterface - data transfer object, contains SearchRequestInterface, collection of PickupLocationInterface and total count.
  • PickupLocationInterface - data transfer object, contains pickup location data (code, name, email, fax, contact name, description, latitude, longitude, country, region, city, street, postcode, phone). Can be extended with PickupLocationExtensionInterface.
  • AreaInterface - data transfer object, contains radius and search term for distance search.
  • FiltersInterface - data transfer object, container for FilterInterface which can be used to apply filter by different fields (country, postcode, region, city, street).
  • FilterInterface - data transfer object, provide filter description: value and condition type.
  • ProductInfoInterface - data transfer object, provide product information which can be used for filtration. It can be extended with ProductInfoExtensionInterface.
  • SearchRequestBuilderInterface - facade which aggregate multiple setters for creation of SearchRequestInterface
  • SearchCriteriaResolverInterface - service which is used to interpret SearchRequestInterface into framework Search Criteria.
  • BuilderPartsResolverInterface - part resolver interface, which provide possibility to interpret PickupLocationInterface certain part into framework Search Criteria arguments.
  • GetPickupLocationInterface - sugar service to retrieve single PickupLocationInterface by code, sales channel code and type.
  • ExtractorInterface - service which is used as post-processor for SourceInterface collection, before it will be mapped to PickupLocationInterface collection.
  • StrategyInterface - strategy interface, which can be applied during extraction process.
  • ParserInterface - parser, which can be used to parse Search Term into the data for AddressInterface.
  • PreProcessorInterface - pre-processor interface, which can be used to pre-process certain field which was taken from SourceInterface before it will be passed into PickupLocationInterface.

InventoryInStorePickup classes

  • SearchCriteriaResolverChain - implements SearchCriteriaResolverInterface, contains and invoke different BuilderPartsResolverInterface.
  • Mapper - service used to map SourceInterface into PickupLocationInterface
  • Extractor - implements ExtractorInterface, contains multiple StrategyInterface and invoke those which meet the criteria.
  • Pipeline - contains multiple ParserInterface and invoke them to parse search term into data for AddressInterface.
  • DelimiterConfig - provides value of delimiter from configurations for Search Term.
  • SearchCriteriaBuilderDecorator - provides service contract decoration for framework SearchCriteriaBuilder.

InventoryInStorePickup GraphQl schema

  • pickupLocations query - describe query for retrieval of PickupLocations.
  • AreaInput input - parameters for distance-based search.
  • PickupLocationFilterInput input - parameters for filter search.
  • PickupLocationSortInput input - parameters for sorting.
  • PickupLocations type - collection of PickupLocation, contains items, page information and total count.
  • PickupLocation type - describe Pickup Location data.

InventoryInStorePickupShipping service contracts

InventoryInStorePickupShipping interfaces

  • ShippingPriceRequestInterface - data transfer object, contains information which will be used to determine shipping price.
  • IsInStorePickupDeliveryCartInterface - sugar service to check if cart uses In-Store Pickup delivery method.
  • RequestValidatorInterface - service to validate if In-Store Pickup delivery method can be used for current RateRequest.
  • GetFreePackagesInterface - service to get number of free packages, used in current RateRequest.
  • GetShippingPriceInterface - service to provide price for In-Store Pickup delivery.
  • GetShippingPriceRequestInterface - creates instance of ShippingPriceRequestInterface

InventoryInStorePickupShipping classes

  • RequestValidatorChain - implements RequestValidatorInterface, contains different RequestValidatorInterface validators to check if cart uses In-Store Pickup delivery method.
  • GetCarrierTitle - provides In-Store Pickup delivery method title from configuration.
  • InStorePickup - delivery method model.

InventoryInStorePickupQuote service contracts

InventoryInStorePickupQuote GraphQl schema

  • ShippingAddressInput input - extended with pickup_location_code - provides possibility to pass Pickup Location code which will be used for delivery.
  • ShippingCartAddress type - extended with pickup_location_code - provides information about applied Pickup Location code.

InventoryInStorePickupSales service contracts

InventoryInStorePickupSales interfaces

  • NotifyOrdersAreReadyForPickupInterface - sends email about that orders are ready for pickup. It executes release of reserved products quantity, stock deduction and 'fake' shipment creation for each order.
  • ResultInterface - data transfer object, provides result of NotifyOrdersAreReadyForPickupInterface execution. It contains status and error messages in case of failure.
  • IsOrderReadyForPickupInterface - service to provide check if order is ready for pickup.
  • IsStorePickupOrderInterface - provides information if order was placed with usage of In-Store Pickup delivery.

MSI Documentation:

  1. Technical Vision. Catalog Inventory
  2. Installation Guide
  3. List of Inventory APIs and their legacy analogs
  4. MSI Roadmap
  5. Known Issues in Order Lifecycle
  6. MSI User Guide
  7. DevDocs Documentation
  8. User Stories
  9. User Scenarios:
  10. Technical Designs:
  11. Admin UI
  12. MFTF Extension Tests
  13. Weekly MSI Demos
  14. Tutorials
Clone this wiki locally