Professional Documents
Culture Documents
6/3/2013
InStore
InStore
6/3/2013
InStore
InStore
Display
rich
product
info
Quickly
identify
products
Check
stock in
store
Web
based app
for touch
devices
Live ATS
Stock
level at
nearby
store
6/3/2013
InStore Module - UI
InStore
Widgets
InStore
6/3/2013
InStore
The following Solr widgets can be used to search from the InStore UI
Text Search
Category Tree
Facet Filter
The main consumer of the search is Pageable List widget, which renders
pageable search results.
InStore
10
Breadcrumb
Displays the category navigation path selected by the user while browsing.
Category Tree
Widget for navigating through categories, subcategories, and brands.
Classification Info
Displays a list of classification attributes and values for a selected product.
Condition Evaluator
Used to set a Spring SPEL expression to be evaluated.
The input object is set as a root of the expression context.
Facet Filter
Holds all possible facet refinements, given the currently displayed search result.
6/3/2013
InStore
11
InStore
12
InStore Layout
Defines layout for the InStore UI, and controls layout-related triggers:
doBack
collapseWest
showProductDetails
showProductList
Pageable List
Displays a list of all products in the store.
This list can be sorted using a Sort widget.
Product Detail
Displays details for a product, such as price and availability.
You can select variants by using a Variant Selector widget.
QR Code
Scans Quick Response (QR) codes and handles product deeplinks.
Scans Near Field Communication (NFC) tags.
Solr Search
Perfoms a Solr facet search. You can also use the Text Search widget for free text.
6/3/2013
13
14
6/3/2013
hybris OMS
15
16
6/3/2013
ATS
17
ATS
18
6/3/2013
ATS
19
ATS
20
When searching for inventory, the items that appear on-hand indicate the
quantity of a SKU that is physically in stock at a certain location.
When an order is placed for a SKU, the tenant has reserved the item to the
customer. To make sure that this inventory does not get sold to another
customer, the SKUs on orders need to be reserved from the SKUs that are
on-hand, thereby calculating the actual amount available for sale to other
customers.
This is where the ATS concept comes in. The ATS calculates the actual
amount of stock available at a single stockroom location (or across all
stockroom locations, in the case of global ATS).
As the order proceeds through the workflow, the ATS maintains the correct
actual amount of availability.
10
6/3/2013
ATS
21
Thresholds
ATS
22
11
6/3/2013
Thresholds (contd)
ATS
23
The threshold amount can be set by location, as a percentage or a fixed quantity. For
example, you could set a threshold of 5% for a given location, which means 5% of the
inventory for each SKU at that location will be held as a buffer. With a threshold of 10
units for a given location,10 units of each SKU at that location will be held as buffer.
Local ATS calculations must be modified to include the stockroom location threshold
amount applicable to the SKUs at the specific stockroom location. It is highly
recommended that the threshold be included in the ATS calculation destined for the
storefront. For example:
ATS=OnHand Sourced Allocated Picked Packed Threshold
If the threshold value is greater than the available inventory, the SKU will have
a negative ATS value.
If the threshold value is less than the available inventory, the SKU has a
positive ATS and can be sold, barring other restrictions or holds.
ATS
24
12
6/3/2013
25
Fulfillment
26
Fulfillment
Which stockroom location(s) should fulfil the items in this order,
and leave the same stockroom location in the same package?
Fulfillment
Pick
Pack
Label
Ship
Capture
Payment
Commit
Taxes
13
6/3/2013
Fulfillment
27
Fulfillment
Pick
Pack
Label
Ship
Capture
Payment
Commit
Taxes
Fulfillment
28
Payment Capture
How do I charge the shoppers credit card?
Fulfillment
Pick
Pack
Label
Ship
Capture
Payment
Commit
Taxes
Tax Commit
How do I commit a tax document to my 3rd party
tax provider?
14
6/3/2013
Fulfillment
29
Pick
Pack
Label
Ship
Capture
Payment
Commit
Taxes
Turn it off!
30
15
6/3/2013
31
32
Fulfillment users
Search orders and view details
Pick, pack, label and
confirm shipments
Collect in store
Inventory managers
Search and update inventory
by SKU or by location
Search stockroom locations
and view details
Administrative users
Create and manage users
Configure workflow, availability formulas,
and sourcing strategies
AND MORE!
16
6/3/2013
33
Geolocation
Payment
Address Verification
Tax (US)
Shipping
34
17
6/3/2013
35
36
hybris
Accelerator
13. Order on Review
6. Silent
Order
Post
hybris
OMS
13. Order on Review
5. Create
checkout page
10a. redirect
to receipt page
11. Interpret
Response
2. getPSP
(client,
pw,
country)
12. Order
Status
REVIEW
16. Interpret
Response
4. URL
for PSP
Commerce Infrastructure
Services
2. getPSP(client,pw,country)
3. PSP(vendor,merchantID)
Fraud
Manager
Subscription Service
18
6/3/2013
37
The real time data push as implemented under Fraud Verification with
Cybersource, is the quickest option to receive fraud updates from
CyberSource.
Unfortunately, CyberSource does not have a retry for push notifications that are not
received by recipient (Accelerator in this case). CyberSources recommended solution is
to pull fraud reviews for a specified time-frame to reconcile the received order state.
With the fraud verification report request, the Accelerator and other
storefronts (or the OMS) can request all converted transactions for a
defined timeline.
A conversion means the status change of an order e.g. from REVIEW to ACCEPTED or from
REVIEW to REJECTED or in rare cases from REJECT to ACCEPT. A conversion from ACCEPT
to anything else is not possible.
38
hybris
Accelerator
1. Cronjob triggers
getFraudReview
7. place/cancel Order
2. getFraudReviews
(tenant,timeframe)
6. OrderStati
(FraudReviews)
4. getReviewUpdates(Timeframe
Commerce Infrastructure
Services
5. ListOfUpdatesForTimeframe
3. getPSP(tenant)
3. PSP(vendor,merchantID)
Subscription Service
19
6/3/2013
Geolocation Services
39
8. The result is retrieved from the database and returned to the data onboarding.
40
Geocode an address
using the stored geodata
hybris
Accelerator
hybris
OMS
2. export order
1. place order
3. data onboarding
4. cisGeolocationHybris
(client,pw,address)
9. Geolocation
7. Geocode (address)
Commerce Infrastructure
Services
MongoDB
8. Geolocation
5. confirmSubscription
(client,pw)
6. confirmed
Subscription Service
20
6/3/2013
41
The CIS payment service enables payment by credit card with providers
such as CyberSource. During checkout, the authorization functionality is
used to reserve the order amount on the end-customer's credit card.
In case of a cancellation, through the customer or the warehouse, the
authorization can be reversed or cancelled with the CIS payment service.
After the order is shipped, partially or in full, the charge to the bank account
can be finalized through the capture functionality.
In case of a product return and a desired repayment, a refund can be
fulfilled with the CIS refund functionality.
Payment Operations
42
External Authorization
Authorization of an amount on a customer credit card can be sent through the external
posting of a form to the third party.
21
6/3/2013
43
44
USPS
Maximum weight (with some exceptions): 70 pounds
Maximum length + girth: 130 inches
UPS
Maximum weight: 150 pounds
Maximum length: 108 inches
Length + girth: 165 inches
FedEx
Maximum weight: 150 pounds
Maximum length: 119 inches
Maximum length + girth: 165 inches
Canada Post
Maximum weight: 66 lbs
22
6/3/2013
45
The Tax Calculation web service is used to quote, post, and invoice taxes.
Tax calculation requires order details, including line items and a shipping
address. The currently supported third party integrations are:
CyberSource
Avalara
46
23
6/3/2013
47
Infrastructure Services
48
24
6/3/2013
Infrastructure Services
49
The concrete endpoints of the CIS web resources depend on the service
that is being used.
However, all resources follow the same path convention:
Pattern:
{server}/{context}/{sub_resource}/{serviceId}/..
Example:
internal.hybris.com/hybriscisavalaratax
web/tax/cisTaxAvalara/invoices/
Infrastructure Services
50
serviceIDs
cisAvsCybersource
cisAvsAvalara
cisFraudCybersource
cisFraudAccertify
cisGeolocationHybris
cisPaymentCybersource
cisPaymentMoneris
cisPaymentMonerisInterac
cisShippingCanadapost
25
6/3/2013
Infrastructure Services
51
Error Handling
Infrastructure Services
52
HTTP/1.1504GATEWAYTIMEOUT
Contenttype:application/xml
<?xml version="1.0"encoding="UTF8"standalone="yes"?>
<errors serviceId="somevendorandtype">
<error code="504">Aservicetimeoutoccurred.Details:None.</error>
</errors>
26
6/3/2013
Multiple Errors
Infrastructure Services
53
In some cases, the body of an error response can contain multiple errors.
For example, if multiple preconditions fail, a general 412 Precondition Failed
response is returned with additional information about which preconditions
have failed.
HTTP/1.1412PRECONDITIONFAILED
Contenttype:application/xml
<?xml version="1.0"encoding="UTF8"standalone="yes"?>
<errors serviceId="somepsp service">
<error code="2001">Invalidcreditcardnumber</error>
<error code="2002">InvalidCVC/CVC2code</error>
<error code="2003">Invalidcreditcarddate</error>
</errors>
Infrastructure Services
54
403 Forbidden
The user is not authorized to access this service.
27
6/3/2013
Infrastructure Services
55
Infrastructure Services
56
28
6/3/2013
Infrastructure Services
57
Client Library
Infrastructure Services
58
The CIS client library provides a default interface for communicating with
back-end services. The client offers a service bean for each specific service
offered by CIS, including:
CIS Tax Service client (com.hybris.cis.client.AvsClient)
CIS Address Verification client (com.hybris.cis.client.TaxClient)
CIS Fraud Service client (com.hybris.cis.client.FraudClient)
CIS Geolocation Service client (com.hybris.cis.client.GeolocationClient)
CIS Payment Service client (com.hybris.cis.client.PaymentClient)
CIS Shipping Service client (com.hybris.cis.client.ShippingClient)
29
6/3/2013
Adding Dependencies
Infrastructure Services
59
You will also need to add some code to the appropriate bean, as outlined here:
wiki.hybris.com/display/release5/CIS+Client+Library#CISClientLibrary
AddBeansinSpringContext
60
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/hybriscisclientapp.xml",
"/hybriscisclienttest.xml"})
publicclassAvsClientImplTest extends AbstractRestClientTest
{
@Autowired
privateAvsClient avsClient;
@Test
publicvoidshouldAcceptAddress()
{
final CisAddress address=new CisAddress("1700Broadway",
"10019","NewYork","NY","US");
finalCisParams params =new CisParams("hybriscisclienttest",
"hybris","unittest",null);
final RestResponse<AvsResult>response=
avsClient.verifyAddress(params,address);
assertEquals(CisDecision.ACCEPT,
response.getResult().getDecision());
assertEquals(Status.CREATED,response.getStatus());
}
}
30
6/3/2013
Localization
Infrastructure Services
61
Infrastructure Services
62
CIS
Order
Entry
Address
Verification
Tax
Calculation
Stock
Availability
Service
Payment
Authorization
Fraud
Check
Submit
Order
Warehouse 1
Store 2
Stock Integration
OMS
(all locations)
Geolocation (CIS)
Fulfillment
Pick, Pack, Dispatch
Shipping Label (CIS)
Payment Capture (CIS)
31
6/3/2013
63
32