Newreport 191108123714

Download as pdf or txt
Download as pdf or txt
You are on page 1of 168

2019

Project Report on E-
Commerce
Project Report on online Shopping

Windows User
[Type the company name]
1/1/2019
BHAGWATI INSTITUTE OF TECHNOLOGYH & SCIENCE
MASURI ,GHAZIABAD
“E-COMMERCE SITE”
A PROJECT REPORT
Submitting by

NAME OF THE STUDENT (‗Bablu Agrahari‘)

ID NO.

166999508
Of

BCA

CCSU, Meerut

Bhagwati Institute of Technology & Science


Masuri,

Ghaziabad, Uttarpradesh
1
“E-COMMERCE SITE”
A PROJECT REPORT

Submitting by
„Bablu Agrahari‟

ID NO.

166999508

Of
BACHELOR OF COMPUTER APPLICATION

CCSU,Meerut
Bhagwati Institute of Technology & Science

Masuri

Ghaziabad, Uttarpradesh

2
CERTIFICATION

I, the undersigned, certify that I have read the Project entitled: ” E-Commerce site” in
Ghaziabad and hereby recommend for acceptance by the ______________BCA
Department in the partial fulfillment for the Award of requirements
for_____________(BCA)_______Degree.

_______________ _________________

(Advisor) (Co-Advisor)

________________ ___________________

Date: Date:

3
APPROVAL CERTIFICATE

This Project entitled “E-Commerce Site” has been approved by the following examiners and
Departmental Head, for the award of BCA degree from CCSU, Meerut at Bhagwati Institute of
Technology & Science, Masuri, Ghaziabad, Uttarpradesh.

Members of the examining board

Name Signature Date

1.Mr._______________ ______________ _____________

Examiner

2.Mr.______________ ______________ ______________

Head of the Department

3.Mr._______________ ______________ ______________

External Examiner

4
ACKNOWLEDGEMENT

I am Thankful To Bhagwati Institute Technology to help in making this project on E-


Commerce. A Special Thanks To Ms.Sakshi Sharma & Archana Sharma to Guide us
step by step in the Making of this Project Report.

Thanking You!

Bablu Agrahari

Bachelor of Computer Application

3rd Year

5
DECLARATION

Is paratial fulfillment of the requirement for the award of the Bachelor of Application
______________.The work has been carried out at Bhagwati Institute of Technology &
Science, Masuri under CCS University of ____________(BCA) is an authentic record of
my work carried out under the guidance of Mr./Miss./Mrs.___________________ .
Assistant Professor/Professor______________ Engineering Department, BITS, Masuri,
Ghaziabad.

The matter embodied in the Project presentation has not been submitted by me or anyone
else for the aword of dany other degree or diploma..

S.NO. NAME ID NO STUDENTS SIGNATURE

1. ---------------- -------------------- -------------------------------


This is to certify that the above statement made by candidate is correct to the best of my
knowledge. The presentation is the candidate‘s own research work and embodies the
finding made by the candidate himself under my/our supervision.

I hereby certify that the work which is being presented in to dissertation title
―_______________‖.

Guide HOD

___________ ________________

Professor/ Assistant Professor

BITS, Masuri,

Ghaziabad

6
SUMMARY
The idea of doing business electronically over network is nothing new: We think nothing
of ordering the products we‘ve seen advertised on tele vision on in printed catalog
with a phone call or a fax, & ATMs are always within a reach for quick, easy, and
automatic banking. Corporations advertise through broadcasting & networks, &
consumers‘ flocks to local outlets of nation & international franchise networks. As the
world become increasingly interconnected, particularly through the internet with its open
protocols, forword looking business will be able to make their product available to a
global market, without having to create & maintain their own private networks for seling
, delivering & supporting customers.

While the techniques for attracting consumer attentions, describing products, &
delivering them electronically will be of interest to those who wish to participate in this
new markets, this project simply explain how business transaction can be execute across
an unreliable & unsecured medium like the internet, & discussed some of the methods
currently being planned & implemented – in other words, how you will be buying &
selling in the future, & how it will work.

The number of businesses denoted to promoting commerce on the internet has been
growing like Topsy since the end of 1994, but they all share the goal of making
commercial over the internet safe, simple secure -- & earn a profit in the process. The
method employed to achieve these ends are somewhat more various, but can be
categorized as either creating secure & reliable channel to carry transaction across
internet connection (which are inherently unsecured & unreliable), or using more
traditional channels to carry sensitive information.

7
INDEX

Table of Contents Page No


CERTIFACTION 3

APPROVAL CERTIFACTION 4

ACKNOELEDGEMENT 5

DECLARATION 6

SUMMARY 7

CHAPTER NO 1.0 INTRODUCTION

1.1 Introduction 14
1.2 Breaf History of E-Commerce 15
1.3 What is E-Commerce 16
1.4 Defination of E-Commerce 18
1.5 The Element of E-Commerce 19
1.6 Historical Development 21

CHAPTER NO 2.0 REQUIREMENT ANALYSIS AND DFD

2.1 Requirement Analysis 23

2.1.1 Requirement Analysis 23


2.1.2 Data Requirement 24
2.1.3 Process Requirement 24

2.2 Use Case Diagram 25


2.2.1 Use Case Diagram Adminstrative Management system 26
2.2.2 Use Case Diagram for Customer 31

2.3 Data Flow Diagram 34


2.3.1 Context Level Diagram 34
2.3.2 First Level DFD 35

2.3.3 Second Level DFD 36

8
CHAPTER NO 3.0 DESIGN SPECIFACTION
3.1 Customer Interface 38
3.1.1 Home Page 38
3.1.2 Customer Login and Registration Page 40

3.1.3 Add to Cart Page 41


3.1.4 Cart Product Before checkout 42
3.1.5 Final Checkout and Shopping Information 43
3.1.6 Select Payment Methods 44
3.1.7 Customer Shopping Notifaction 45

3.2 Admin Interface 46


3.2.1 Admin Login 47
3.2.2 Admin Home Page 48
3.2.3 Add Category 49
3.2.4 Manage Category 50
3.2.5 View Category 51
3.3.6 Edit Category 52

3..3.7 Delete Category 53

3.3.8 Add Product 54

3.3.9 Manage Product 55

3.3.10 View Product 56

3.3.11 Edit Product 57

3.3.12 Delete Product 58

3.3.13 Manage Product 59

3.3.14 View Product 60

3.3.15 Edit Order Status 61

3.3 Footer Page 62

9
CHAPTER NO 4.0 MODEL & PROCESS

4.1 Model of E-Commerce 63

4.1.1 Business to Business 63

4.1.2 Business to consumer 64

4.1.3 Consumer to Consumer 65

4.1.4 Consumer to Business 65

4.1.5 Business to Government 66

4.1.6 Government to Business 67

4.1.7 Government to Citizen 67

4.2 E-Commerce Proces 68

4.3 E- commerce Payment process 69

4.3.1 Credit card 69

4.3.2 Credit Card Payment Process 70

4.3.3 Debit Card 71

4.3.4 Smart Card 71

4.3.5 E-money 71

4.3.6 Electronic Fundtransfer 72

4.4 E-commerce Selling Process 73

CHAPTER NO. 5.0 SUCCESS FACTERE

5.1 Success Factere in E-commerce 77

5.2 Six Facters in E-commerce success 78

5.2.1 Regulation of Product Price 78

5.2.2 Maintaning High Quality Product 78

5.2.3 Improving Store Accesibility 79

5.2.4 Making a Wonderfull Impression 79

10
5.2.5 Secquring Your Shiment 80

5.2.6 Traking Advantage of E-commerce 80

CHAPTER NO 6.0 TECHNOLOGIES

6.1 E-Commerce Technology 81

6.1.1 The Mobile Shift 81

6.1.2 Conversational Marketing 81

6.1.3 Automaction And Chat Bot 82

6.1.4 Image Search 83

6.1.5 Fast & Easy Checkout Process 83

CHAPTER NO 7.0 STANDARDS & STOCK

7.1 E-Commerce Standards 85

7.1.1 Electronic Data Interchange 85

7.1.2 Open Buying on Internet 85

7.1.3 The OPT Tracking Process 85

7.1.4 The Open Profiling Standrard 85

7.1.5 Secure Sockit layer 85

7.1.6 Secure Electronic Transaction 86

7.1.7 Trust 86

7.2 Electronic Stock Tranding 87

7.3 Electronic Banking 88

7.4 Type of E-Banking 88

7.5 Importance of E-Banking 90

7.5.1 Banks 90

7.5.2 Customers 90

7.5.3 Businesses 91

11
7.6 E-Banking in India 92

7.7 Secure Electronic Transation 94

CHAPTER NO 8.0 IMPLEMENTATION & TESTING

8.1 Implementation 96

8.1.1 HTML 96

8.1.2 PHP 96

8.1.3 MySQL 97

8.1.4 XAMPP Server 97

8.2 Testing 98

8.2.1 Black Box Testing 98

8.2.2 White Box Testing 99

8.3 User Feedback 100

CHAPTER NO 9.0 COADING

9.1 Coading Page 102

9.1.1 Main Page(INDEX) 102

9.1.1.1 Header 105

9.1.1.2 Footer 105

9.1.2 Search 108

9.1.3 Admin Bar 109

9.1.4 Bookmark 117

9.1.5 Category 127

9.1.6 Login 132

9.1.7 Mail 155

CHAPTER NO 10.0

10.1 Biblography 163

12
CHAPTER NO 11.0 FUTURE EXPECTATION

11.1 Future Expectation About E-commerce 164

11.1.1 The Internal is crushing Department Store 164

11.1.2 Mobile is The Internet 165

11.1.3 Social is the Key Drive 165

11.1.4 E-Commerce with Messaging 165

11.1.5 VR, AR and Wareable Devices. 166

11.1.6 Online Store Have to Fit In 166

13
CHAPTER NO 1.0

1.1 INTRODUCTION
Two thousand years ago, Roman roads brought trade and commerce to Europe in an
unprecedented manner. A thousand years ago, the spice routes linked the cultures of East
and West. At the dawn of the second millennium, the Internet, the world‘s largest
computer network, the network of networks, is making fundamental changes to the lives
of everyone on the planet-changing forever the way business is conducted.

Internet has become an important medium for doing global business based on the state of
the art technology. Global business was conducted in a new way: electronically, using
networks and the Internet. The availability of Internet has led to the development of E-
Commerce (Electronic commerce), in which business transactions take place via
telecommunication networks. E-Commerce has two major aspects: economical and
technological. The stress of this course will show you how to get started in the complex
and exciting world of Electronic Commerce. New standards and new facilities are
constantly emerging and their proper understanding is essential for the success of an
operation and especially for those who are assigned a duty to select, establish, and
maintain the necessary infrastructure.

14
1.2 BRIEF HISTORY OF E-COMMERCE
The history of E-commerce is a history of how Information Technology has transformed
business processes. Some authors will track back the history of E-commerce to the
invention of the telephone at the end of last century. The Internet was conceived in 1969,
when the Advanced Research Projects Agency (a Department of Defence organization)
funded research of computer networking. The Internet could end up like EDI (Electronic
Data Interchange) without the emergence of the World Wide Web in 1990s. EDI
(Electronic Data Interchange) is widely viewed as the beginning of E-commerce if we
consider E-Commerce as the networking of business communities and digitalization of
business information.

EDI, which expanded from financial transactions to other transaction processing and
enlarged the participating companies from financial institutions to manufacturers,
retailers, services, and so on. Many other applications followed, ranging from stock
trading to travel reservation systems .Such systems were described as telecommunication
applications and their strategic value was widely recognized. With the commercialization
of the Internet in the early 1990s and its rapid growth to millions of potential customers,
the term electronic commerce was coined, and EC applications expanded rapidly. One
reason for the rapid expansion of the technology was the development of networks,
protocols, software, and specifications. The other reason was the increase in competition
and other business pressures. From 1995 to 1999 we have witnessed many innovative
applications ranging from advertisement to auctions and virtual reality experiences.
Almost every medium- and large-sized organization in the United States already has a
Web site many are very extensive; for example, in 1999 General Motors Corporation
offered 18,000 pages of information that included 98,000 links to its products, services,
and dealers.

15
1.3 What is E-Commerce ?

Such as mobile commerce, electronic funds transfer, supply chain management, Internet
marketing, online transaction processing, electronic data interchange (EDI), inventory
management systems, and automated data collection systems. Modern electronic
commerce typically users the World Electronic commerce, commonly known as E-
commerce or E-Shop, is trading in products or services using computer networks, such
as the Internet. Electronic commerce draws on technologies Wide Web for at least one
part of the transaction‘s life cycle, although it many also use other technologies such as e-
mail.

Many retails shop are shift on E-Commerce because e-commerce is fastly grow in the
world.

E-commerce businesses many employ some or all of the following:

 Online shopping web sites for retail sales direct to consumers.


 Providing or participation in online marketplaces, which process
third-party business-to-consumers or consumers-to-consumers sales.
 Business-to-business buying and selling.
 Gathering and using demographic data through web contacts and
social media.
 Business-to-business electronic data interchange.
 Marketing to prospective and established customers by e-mail or fax
(for example, with newsletters).
 Engaging in prtail for launching new products and services.

16
1.4 WHAT DO YOU MEAN BY E-COMMERCE:-

Commerce is the exchange of goods & Services, usually for money. When you
something at a store you buy something at a store you are participating in commerce.
Going to work each day for a company that produces a product, is a link in the chain of
the commerce. When one thinks of different ways, he/she immediately recognize several
different players of the commerce such as:

 Buyers: These are the people or organization with money who want to purchase
goods & service products.
 Sellers: These are the people who offer goods & service to buyers. Sellers are
recognizing in different forms such as retailers who sell directly to consumers and
wholesalers who sell to retailers & others. Wholesalers are also known as
distributers.
 Producers: These are the people organization that create the product & services
that seller‘s offer to buyers. Producer may is classified in the category of a seller.
They can sell there products to any category to customers.

17
1.5 DEFINATION OF E-COMMERCE:-
―What is E-Commerce? E-Commerce supports an entire range of activities such as
product design, manufacturing, advertising, commercial transactions, settlements of
accounts using a variety of computer networks.‖

Thus , E-Commerce refers to the paperless exchange of business information using


electronic data interchange , electronic mail, electronic fund transfer & other networked
based technologies.

In a holistic sense electronic commerce can be summarized as:

 It is a business strategy.
 It uses technology to achieve business goals.
 It improves external business relationships.
 It is an evolution in the way companies‘ internal.
 It provides information to facilitate delivery of goods & Services.

18
1.6 THE ELEMENTS OF E-COMMERCE

In case of an E-Commerce, all the above listed elements are available but they are having
slight variation in the real life situation.

1) A Product or service: In case of E-Commerce, it is virtual product shown


on a web site. One can demonstrate multimedia presentation of the product
& its entire feature on the web page itself, which may not be possible in
case of physical products of commerce activity.
2) A Place to sell the products: In the E-Commerce case, a website
displays the products in all ways & act as a place for E-Commerce.
3) A way to get customers to visit your website: In case of E-Commerce
search engines and linkages with other web sites play an important role in
helping the customers to reach web sites of the E-organizations.
4) A way to accept returns: The orders are accepted on the web site itself.
On the web pages of the E-commerce companies shopping carts are beings
provided. One can click on the icon and fill in the shopping card to order
items to be purchased and it is accepted by the E-Commerce company as
order from customer.
5) A way to accept money: In case of traditional commerce, buyers and
sellers are in direct contact with each other. The payments in E-Commerce
are made using Electronic fund Transfer in various form using credit
cards, smart cards, e-checks etc. the information of payment is routed
through Value added Networks (VANs) and Payment Gateway Systems
etc.
6) A way to accept returns: As is the case of commerce, in case of E-
Commerce all the trading companies have the system of accepting the
returns if the goods and services are not to the satisfaction of the customer
or not up to the standreds/ specifications mentioned in the product catalogs
or brochures hosted on the web pages.

19
7) A way to handle warranty claims: Sometimes if the product breaks in
the way or some other problems crop up with the product. In such
situation, warranty claims are to be honored as in the case of commerce.
8) A way to provide customer service: The main tools of the customers
services are E-mail, Online forms , Online Knowledge bases and
frequently asked questions.

20
1.7 HISTORICAL DEVELOPMENT:-

The meaning of the term ―electronic commerce‖ has changed over the last 30 years.
Originally, ―electronic commerce‖ meant the facilitation of commercial electronically,
usually using technology like Electronic Data Interchange (EDI) and Electronic Funds
Transfer (EFT), where both were introduced in the late 1970s, for example , to send
commercial documents like purchase orders or invoices electronically.

The ‗electronic‘ or ‗e‘ in e-commerce refers to the technology/systems; the ‗commerce‘


refers to be traditional business models. E-commerce is the complete set of processes that
support commercial/business activities on a network. In the 1970s and 1980s, this would
also (ATM) and telephone banking in the 1980s was also forms of e-commerce.
However, form the 1990s onwards, this would include enterprise resource planning
systems (ERP), data mining and data warehousing.

In the dot com era, it came to include activities more precisely termed ―Web
commerce‖—the purchase of gods and services over the World Wide Web, usually with
secure connections (HTTPS, a special server protocol that encrypts confidential ordering
data for customer protection) with e-shopping carts and with electronic payment services,
like credit cards payments authorizations.

Today , it encompasses a very wide range of business activities and processes, from e-
banking to offshore manufacturing to e-logistics. The ever growing dependence of
modern industries on electronically enabled business processes gave impetus to the
growth and development of supporting systems, including backend systems, applications
and middleware. Examples are broadband and fiber-optic networks, supply-chain
management software, customer relationship management software, inventory control
systems and financial accounting software.

When the web first become well-known among the general public in 1994, many
journalists and pundits forecast that e-commerce would soon become a major economic
sector. However , it took about four years for security protocols (like HTTPS) to become
sufficient developed and widely deployed. Subsequently, between 1998 and 2000, a

21
substantial number of businesses in the United States and Western Europe developed
rudimentary web sites.

Although a large number of ―pure e-commerce‖ companies disappeared during the dot-
com collapse in 2000 and 2001, many ―brick-and-mortar‖ retailers recognized that such
companies had identified valuable niche markets and began to add e-commerce
capabilities to their Web sites.

22
CHAPTER NO 2.0

2.1 REQUIREMENT ANALYSIS

2.1 .1. REQUIREMENT ANALYSIS

As the goal of the application is ease of use and to provide an interactive interface,
extensive research has been done to gain an insight into the needs and behaviors of
various users. The working of the application is made convenient and easy to use for the
end user. In online web based shopping systems there are two party who interact with the
system, one of them are customer who wants to buy product and other the system admin
manage the system. A good web based online shopping system should present the
following factors to the customers for better usability.

Customer requirements:

• Knowing when an item have to save not save in the shopping cart.

• Returning the different parts of the site after adding an item to the shopping cart.

• Easy scanning and selecting items in the list.

• Effective categorical organization of the products.

• Simple navigation from home page to information and order links for specific products.

• Obvious shopping links or buttons.

• Consistent layout of product information.

• A well-organized web interface to work as admin so that he can handle all the part of
the system properly.

23
2.1.2 DATA REQUIREMENT

• A customer can view the product properly but to buy he has to add the product in
shopping cart, for this he has to register or have to login if he is an existing user.

• To launch the system, admin have to select the category of product, company or
manufacturer of product will remain in the system for customer view and he can select
those from his panel .

• From user part or customer part when a customer order from his part can manage the
order of the product.

• Admin can add manufacturer of product, view manufacturer, delete manufacturer,


update manufacturer and its status those are not available in shop as unpublished.

• Admin can add product, view product, delete product, update product and its status
those are not available in shop as unpublished.

• Admin can add category of product, delete, view, update product and its status those are
not available in shop or stop to sell or not to show to customer.

• Another important factor in the design of the software that the feedback. The interactive
cycle between a use and website in not complete until the responds to a command by the
user.

2.1.3 PROCESS REQUIREMENT

To perform any systems have some specific authentication functionality. The following
process requirements are identified for the better performance of the system:

• A valid admin user is needed to access the information of the system for the admin.

• A valid customer ID is need to the customer to buy the product.

• Admin login to the system can view, edit, delete and update category, manufacturer and
product related information. Also he can update the order information.

24
2.2 USE CASE DIAGRAM

A use case is a methodology used in system analysis to identify, clarify, and organize
system requirements. The use case is made up of a set of possible sequences of
interactions between systems and users in a particular environment and related to a
particular goal. It consists of a group of elements (for example, classes and interfaces)
that can be used together in a way that will have an effect larger than the sum of the
separate elements combined.

The use case should contain all system activities that have significance to the users. A use
case can be thought of as a collection of possible scenarios related to a particular goal,
indeed, the use case and goal are sometimes considered to be synonymous.

In this use case diagram of Online Shopping admin can add, delete, edit and view
Category, Manufacturer and Product as well as admin can manage all of them. Also
Admin can manage order those are requested by the customer, and can change the status.

25
2.2.1 USE CASE DIAGRAM FOR ADMINISTRATIVE MANAGEMENT
SYSTEM.

Figure 2.1: Use Case Diagram for Administrative Management

26
Description:

Use Case No: 001

Use Case Name: Add Category

Actor: Admin

Pre-requisite: login

Primary Path: Click on Add Category

Use Case No: 002

Use Case Name: View Category

Actor: Admin

Pre-requisite: login

Primary Path: Click on View Category

Use Case No: 003

Use Case Name: Edit Category

Actor: Admin

Pre-requisite: login

Primary Path: Click on Edit Category

Use Case No: 004

Use Case Name: Delete Category

27
Actor: Admin

Pre-requisite login

Primary Path: Click on Delete Category

Use Case No: 005

Use Case Name: Add Manufacturer

Actor: Admin

Pre-requisite: login

Primary Path: Click on Add Manufacturer

Use Case No: 006

Use Case Name: View Manufacturer

Actor: Admin

Pre-requisite: login

Primary Path: Click on View Manufacturer

Use Case No: 007

Use Case Name: Edit Manufacturer

Actor: Admin

Pre-requisite: login

Primary Path: Click on Edit Manufacturer

28
Use Case No: 008

Use Case Name: Delete Manufacturer

Actor: Admin

Pre-requisite: login

Primary Path: Click on Delete Manufacturer

Use Case No: 009

Use Case Name: Add product

Actor: Admin

Pre-requisite: login

Primary Path: Click on Add product

Use Case No: 0010

Use Case Name: View product

Actor: Admin

Pre-requisite: login

Primary Path: Click on View product

Use Case No: 0011

Use Case Name: Edit product

Actor: Admin

Pre-requisite: login

29
Use Case No: 0012

Use Case Name: Delete product

Actor: Admin

Pre-requisite: login

Primary Path: Click on Delete product

Use Case No: 0013

Use Case Name: Manage Order

Actor: Admin

Pre-requisite: login

Primary Path: Click on Manage Order

30
2.2.2 USE CASE DIAGRAM FOR CUSTOMER

Figure 2.2: Use Case Diagram for Customer

Description:

This is the Use Case diagram for customer. This diagram shows the activity done from
customer end to buy the product. There are several option of searching a product by the
category, manufacturer, top selling and latest product. Those are given below one by one.

Use Case No: 001

Use Case Name: Register

Actor: Customer

Pre-requisite: None

31
Primary Path: Go to Home page of the shopping system, click on create account, fill the
form and finally click on create An Account

Use Case No: 002

Use Case Name: Search Product

Actor: Customer

Pre-requisite: None

Primary Path: Click on Category or Manufacturer name

Use Case No: 003

Use Case Name: View Product

Actor: Customer

Pre-requisite: None

Primary Path: Click on product

Use Case No: 004

Use Case Name: View Image

Actor: Customer

Pre-requisite: None

Primary Path: Put cursor on product image

32
Use Case No: 005

Use Case Name: Login

Actor: Customer

Pre-requisite: None

Primary Path: Click on login button

Use Case No: 006

Use Case Name: Add to cart

Actor: Customer

Pre-requisite: login

Primary Path: Click on add to cart button

Use Case No: 007

Use Case Name: Edit Cart

Actor: Customer

Pre-requisite: Have to add product to cart

Primary Path: Click on update

Use Case No: 008

Use Case Name: Add Shipping info

Actor: Customer

Pre-requisite: Checkout button

33
2.3 DATA FLOW DIAGRAM (DFD)

A data flow diagram (DFD) is a graphical representation of the "flow" of data through an
information system, modelling its process aspects. A DFD is often used as a preliminary
step to create an overview of the system, which can later be elaborated

2.3.1 CONTEXT LEVEL DIAGRAM:

Context level diagram just show the task happening in the whole system, its actually
shows the input what is the ourput for the input.

Figure 2.3: Context Level DFD

34
2.3.2 FIRST LEVEL DFD:

First level DFD shows the major steps that have to complete to buy a product. Initially
customer visit the website, search the product by category, manufacturer and top selling,
show the details of the product, select payment method, finally the product delivered by
the company agent.

Figure 2.4: First Level DFD

35
2.3.3 SECOND LEVEL DFD:

Second level DFD shows the whole fact that happen in the system and it‘s given below:

Figure 2.5: Second Level DFD

36
2.4 ER DIAGRAM

An ER diagram can be used to design logical database schemas. An ER model is a high-


level description of the data and the relationships among the data, rather than how data is
stored. It focuses on identifying the entities and the relationship among the entities.

In the ER diagram of Online Shopping the relationship between the customer to product
is one to many as same customer can buy multiple product, also for category to product is
one to many as for a single category have different product. Also here mentioned the
relationship between the tables, mention the primary key of the table. Here another
important part is that its mention all the entities of the table.

Online Shopping System ER diagram give below:

37
CHAPTER NO 3.0

DESIGN SPECIFICATION

3.1 CUSTOMER INTERFACE

3.1.1 HOME PAGE

A home page is a webpage that serves as the starting point of website. It is the default
webpage that loads when visit a web. The home page is located in the root directory of a
website. Most web server allow the home page to have one of several different filenames.
Examples include index.html, index.htm, index.shtml, index.php, default.html, and
home.html. The default filename of a website's home page can be customized on both
Apache and IIS servers. Since the home page file is loaded automatically from the root
directory, the home page URL does not need to include the filename. There is no
standard home page layout, but most home pages include a navigation bar that provides
links to different sections within the website. Other common elements found on a home
page include a search bar, information about the website, and recent news or updates.
Some websites include information that changes every day. For example, the Tech Terms
home page includes a daily quiz and tech term of the day. Home page of shopping system
include so many part of the system those are below.

• Top Selling: Top of the home page showing top selling of the product.

• Menu: Home page include menus according to category of product, and customer can
search the product according to category of product the customer needed.

• Cart: Customer can see the products he added in his cart.

• Create Account: The customer has no account can register from this page.

• Latest product that added recently showing in the home page right part also the middle
of the home page.

• In footer of the home page customer can view the product according to the
manufacturer.

38
• In the middle part of the home page showing the current promotion or offer running.

• Bottom of the page showing Account, Help and Popular menu. Popular menu will show
the latest product, Help for contact and Account for register or existing user login.

Home Page view is shown in figure below:

Figure: 3. 1 Home page

39
3.1.2 CUSTOMER LOGIN AND REGISTRATION PAGE

Customer have to login before adding product in cart. In this page existing customer can
login to buy product and new user can create an account for buying the product.

Figure of user login and registration page given below:

Figure: 3.2 user login and registration

40
3.1.3 ADD TO CART PAGE

To buy a product the customer have to add product to cart. Also customer can view the
product details, as well as large view by putting the cursor over the product image. The
figure of adding product to cart given

Figure: 3.3 add to cart

41
3.1.4 CART PRODUCT BEFORE CHECK OUT

The customer can view the product, update number of product, delete product from cart
and send request to check out and given figure below:

Figure: 3.4 Cart Product before check out

42
3.1.5 FINAL CHECKOUT AND ADD SHIPPING INFORMATION

From the customer panel before adding shipping information he can see the product
details, also have to add.

Shipping information. The figure of Final Checkout and Add Shipping


Information method given below:

Figure: 3.5 Final Checkout and Add Shipping Information

43
3.1.6 SELECT PAYMENT METHOD

There are several method of payment to pay to product cost, customer select any of them.
After selecting the payment method customer have to confirm the order. The figure of
payment method given below:

Figure: 3.6 Payment Method

44
3.1.7 CUSTOMER SHOPPING NOTIFICATION

After selecting the payment method by the customer, then confirming the order he will
redirect to home page of the website, a notification will display in the top part of the
website as for the confirmation that his order submitted successfully. The order submitted
by the customer will show at admin panel, and admin will take steps to deliver the
product. The notification message will be like below:

Figure: 3.7 Customer Invoice

45
3.2 ADMIN INTERFACE

Figure: 3.8 Admin Interface

46
3.2.1 ADMIN LOGIN PAGE

Admin part in so important part of the system and he take cares all the part the shopping
system. When the system developed an admin user created and using admin user email id
and password he can login to the system figure given below:

Figure: 3.9 Admin Login Page

47
3.2.2.ADMIN HOME PAGE

Admin will get different menu in his panel after login with valid user id and password.
The menu admin will get are Category, under category will get submenu Add Category,
Manage Category and Archive Category. He will also get Manufacturer menu, under
Manufacturer menu will get submenu Add Manufacturer, Manage Manufacturer. He will
get Add product, Manage Product and Archive Product submenu under product menu.
The customer request for product will show on Manager Order menu.

Figure of Admin Home Page is given below:

Figure: 3.10 Admin Home Page

48
3.2.3 ADD CATRGORY

From admin panel admin add category that will show in home page if admin select the
publication status as published, and will not show if he select publication status as
unpublished. Figure of Add Category given below:

Figure: 3.11 Add Category

49
3.2.4 MANAGE CATEGORY

Manage category is an important part of admin panel, for set status that the category will
show or not in home page admin can select this. He can view, edit and delete the category
from Manage Category menu. Figure of Manage category given below:

Figure: 3.12 Manage Category

50
3.2.5 VIEW CATEGORY

In view category submenu customer can show the details of the category. Figure of View
Category given below:

Figure: 3.13 View Category

51
3.2.6 EDIT CATEGORY

If mistake done when added category, by editing the page admin can correct
the information that updated when it created. Figure of edit category given
below:

Figure: 3.14 Edit Category

52
3.2.7 DELETE CATEGORY

Unused category or the product category the company decided to stop sell permanently
can delete, before deleting it, a notification will come to reconfirm that admin sure he
wants to delete it. Figure of Delete category given below:

Figure: 3.15 Delete Category

53
3.2.8 ADD PRODUCT

From admin panel admin Add Product that will show in home page if admin select the
publication status as published, and will not show if he select publication status as
unpublished. Figure of Add Product given below:

Figure: 3.16 Add Product

54
3.2.9 MANAGE PRODUCT

Manage Product is an important part of admin panel, for setting status that the Product
will show or not in home page, admin can select this. He can view, edit and delete the
product from Manage Product submenu. Figure of Manage Product given below :

Figure: 3.17 Manage Product

55
3.2.10 VIEW PRODUCT

In view option customer can show the details of the product. Figure of View Product
given below:

Figure: 3.18 View Product

56
3.2.11 EDIT PRODUCT

If mistake done when added product, by editing the page admin can correct the
information that updated when it created. Figure of Edit Product given below:

Figure: 3.19 Edit Product

57
3.2.12 DELETE PRODUCTS

Unused Product or the product the company decided to stop sell permanently can delete,
before deleting it, a notification will come to reconfirm that admin sure he wants to delete
it. Figure of Delete Product given below:

Figure: 3.20 Delete Product

58
3.2.13 MANAGE ORDER

The product which were ordered by the customer can manage from this menu. When a
product delivered to the customer, and customer paid for this, then need to change
product order status to delivered and paid, that can be done from this menu. Figure of
Manage Order given below:

Figure: 3.21 Manage Order

59
3.2.14 VIEW ORDER

In view category submenu customer can show the details of the category. Figure of View
Order given below:

Figure: 3.22 View Order

60
3.2.15 EDIT ORDER STATUS

The product that delivered the customer have to change the product deliver status as
delivered and as a result the product will not display at admin pa

Figure: 3.23 Edit Order Status.

61
3.3 FOOTER PAGE

Figure: 3.24 Footer Page

62
CHAPTER NO 4.0

4.1 MODELS OF E-COMMERCE:-

E-commerce business models can generally be categorized into the following categories.

 Business - to - Business (B2B)

 Business - to - Consumer (B2C)

 Consumer - to - Consumer (C2C)

 Consumer - to - Business (C2B)

 Business - to - Government (B2G)

 Government - to - Business (G2B)

 Government - to - Citizen (G2C)

4.1.1 BUSINESS-TO-BUSINESS:-

A website following the B2B business model sells its products to an intermediate buyer
who then sells the product to the final customer. As an example, a wholesaler places an
order from a company's website and after receiving the consignment, sells the
endproduct to the final customer who comes to buy the product at one of its retail
outlets.

63
4.1.2 BUSINESS-TO-CONSUMERS:-
A website following the B2C business model sells its products directly to a customer. A
customer can view the products shown on the website. The customer can choose a
product and order the same. The website will then send a notification to the business
organization via email and the organization will dispatch the product/goods to the
customer.

64
4.1.3 CONSUMER-TO-CONSUMER:-
A website following the C2C business model helps consumers to sell their assets like
residential property, cars, motorcycles, etc., or rent a room by publishing their
information on the website. Website may or may not charge the consumer for its
services. Another consumer may opt to buy the product of the first customer by viewing
the post/advertisement on the website.

4.1.4 CUSTOMER-TO-BUSINESS:-
In this model, a consumer approaches a website showing multiple business
organizations for a particular service. The consumer places an estimate of amount he/she
wants to spend for a particular service. For example, the comparison of interest rates of
personal loan/car loan provided by various banks via websites. A business organization
who fulfills the consumer's requirement within the specified budget, approaches the
customer and provides its services.

65
4.1.5 BUSINESS-TO-GOVERNMENT:-
B2G model is a variant of B2B model. Such websites are used by governments to trade
and exchange information with various business organizations. Such websites are
accredited by the government and provide a medium to businesses to submit application
forms to the government.

4.1.6 GOVENMENT-TO-BUSINESS:-
Governments use B2G model websites to approach business organizations. Such
websites support auctions, tenders, and application submission functionalities.

66
4.1.7 GOVERNMENT-TO-CITIZEN:-

Governments use G2C model websites to approach citizen in general. Such websites
support auctions of vehicles, machinery, or any other material. Such website also
provides services like registration for birth, marriage or death certificates. The main
objective of G2C websites is to reduce the average time for fulfilling citizen‘s requests
for various government services.

67
4.2 E-COMMERCE PROCESS:-

E-commerce refers to the process of buying or selling products or services over the
Internet.

E-commerce activities such as selling online can be directed at consumers or other


businesses. Business to Consumer ( B2C ) involves the online sales of goods, services
and provision of information directly to consumers.

68
4.3 E-COMMERCE PAYMENT PROCESS:-
E-commerce sites use electronic payment, where electronic payment refers to paperless
monetary transactions. Electronic payment has revolutionized the business processing
by reducing the paperwork, transaction costs, and labor cost. Being user friendly and
less time-consuming than manual processing, it helps business organization to expand
its market reach/expansion. Listed below are some of the modes of electronic payments .

 Credit Card

 Debit Card

 Smart Card

 E-Money

 Electronic Fund Transfer (EFT)

4.3.1 CREDIT CARD:-


Payment using credit card is one of most common mode of electronic payment. Credit
card is small plastic card with a unique number attached with an account. It has also a
magnetic strip embedded in it which is used to read credit card via card readers. When a
customer purchases a product via credit card, credit card issuer bank pays on behalf of
the customer and customer has a certain time period after which he/she can pay the
credit card bill. It is usually credit card monthly payment cycle. Following are the actors
in the credit card system.

 The card holder − Customer

 The merchant − seller of product who can accept credit card payments.

 The card issuer bank − card holder's bank

 The acquirer bank − the merchant's bank

 The card brand − for example , visa or Mastercard.

69
4.3.2 CREDIT CARD PAYMENT PROCESS;-

Step Description

Step 1 Bank issues and activates a credit card to the customer on his/her request.

Step 2 The customer presents the credit card information to the merchant site or
to the merchant from whom he/she wants to purchase a product/service.

Step 3 Merchant validates the customer's identity by asking for approval from the
card brand company.

Step 4 Card brand company authenticates the credit card and pays the transaction
by credit. Merchant keeps the sales slip.

Step 5 Merchant submits the sales slip to acquirer banks and gets the service
charges paid to him/her.

Step 6 Acquirer bank requests the card brand company to clear the credit amount
and gets the payment.

Step 7 Now the card brand company asks to clear the amount from the issuer
bank and the amount gets transferred to the card

70
4.3.3 DEBIT CARD:-
Debit card, like credit card, is a small plastic card with a unique number mapped with
the bank account number. It is required to have a bank account before getting a debit
card from the bank. The major difference between a debit card and a credit card is that in
case of payment through debit card, the amount gets deducted from the card's bank
account immediately and there should be sufficient balance in the bank account for the
transaction to get completed; whereas in case of a credit card transaction, there is no
such compulsion.

Debit cards free the customer to carry cash and cheques. Even merchants accept a debit
card readily. Having a restriction on the amount that can be withdrawn in a day using a
debit card helps the customer to keep a check on his/her spending.

4.3.4 SMART CARD:-


Smart card is again similar to a credit card or a debit card in appearance, but it has a
small microprocessor chip embedded in it. It has the capacity to store a customer‘s
work-related and/or personal information. Smart cards are also used to store money and
the amount gets deducted after every transaction.

Smart cards can only be accessed using a PIN that every customer is assigned with.
Smart cards are secure, as they store information in encrypted format and are less
expensive/provides faster processing. Mondex and Visa Cash cards are examples of
smart cards.

4.3.5 E-MONEY;-
E-Money transactions refer to situation where payment is done over the network and the
amount gets transferred from one financial body to another financial body without any
involvement of a middleman. E-money transactions are faster, convenient, and saves a
lot of time.

Online payments done via credit cards, debit cards, or smart cards are examples of
emoney transactions. Another popular example is e-cash. In case of e-cash, both
customer and merchant have to sign up with the bank or company issuing e-cash.

71
4.3.6 EELECTRONIC FUND TRANSFER;-
It is a very popular electronic payment method to transfer money from one bank account
to another bank account. Accounts can be in the same bank or different banks. Fund
transfer can be done using ATM (Automated Teller Machine) or using a computer.

Nowadays, internet-based EFT is getting popular. In this case, a customer uses the
website provided by the bank, logs in to the bank's website and registers another bank
account. He/she then places a request to transfer certain amount to that account.
Customer's bank transfers the amount to other account if it is in the same bank,
otherwise the transfer request is forwarded to an ACH (Automated Clearing House) to
transfer the amount to other account and the amount is deducted from the customer's
account. Once the amount is transferred to other account, the customer is notified of the
fund transfer by the bank.

72
4.4 E-COMMERCE SELLING PROCESS:-

Selling online has become easily possible nowadays. In fact, it has become one the most
popular platforms people prefer buying from.

If you plan to start a business of your own, and wondering how to go about it, then this
post will help you learn the complete e-Commerce Selling Process.

Follow the steps as mentioned, and to the end, you‘ll be done.

Step #1: Give your business a name – Register it

The first and foremost requirement is to give your business an identity in terms of a
name. The name is something your audience will recognize your business with. Thus,
choosing a good name is imperative.

Once you select a name, make sure you register it.

Why is registration important?


This is because if someday someone else comes up in the market with the same name,
you will stand nowhere since you do not have proof that you own that title.

Moreover, one needs to comply with the registration as mandatory per law. Thus, it is
essential to get your business registered. Each state may have its own policies; therefore,
you may refer to your respective state policies for registration.

Step #2: Create a domain name and a website – Register as a seller:-

Once you are registered, either create your own website using a hosting platform or
register as a seller. There are two different possibilities you might want to opt, i.e.

73
1. Register as a seller on popular websites like Amazon, and eBay OR start your own e-
commerce business by buying space at popular sites such as Shopify, Big Commerce,
etc.
2. The other possibility that arises when you want to set your own e-commerce store is to
build a website using web hosting platforms and register your domain.
For example, buy a domain for the e-commerce platform through the WordPress and
install plugins that help you set up your business and sell online.

Registering as a seller on e-commerce platforms is the easiest way to start selling.


The complexity level increases when you opt for platforms to open up your own store.
However, the primary benefit here is that you have your own store where you can sell
unlike being just a seller on other e-commerce platforms.

You actually tend to build your own brand here. The most complicated method is to
create a new website altogether to start a business.

However, if you plan to do a business on a massive scale, it is the optimum choice to


make.

74
Step #3: Upload Products:-

Once you‘ve chosen where you want to sell and have a space to upload your stock, you
may now start uploading high-quality images of your products.

Give them a name and mention their price.


If you are into selling various categories of products, make sure to categorize them. This
makes the website look neater and easy to use for the customer.

Give the products a suitable description that is easy to understand and explains each and
every feature of the product.
When doing a business online, your interaction with the customers is not direct. The
customer cannot touch and feel the product physically. Thus, in order to succeed despite
the demerit, it is important to explain each and everything about the product through
descriptions.

Step #4: Use SEO:-

In order to get your website or listed products to rank on top of the Google search results,
it is essential to have relevant keywords in the content.

For example, if a person is looking out for a juicer, and you have it as one of your
products, then make sure your product title has the word juicer. This will help the search
engines identify that you have the same thing that the buyer is looking for and will list
your products on the top.

Similarly, make sure that the description along with being informative and easy to read, is
also SEO optimized.

75
Step #5: Choose your shipping method:-

The next and the most important thing is to choose a shipping strategy. Make sure you
connect with only famous shipping companies who can make sure that they will deliver
your product timely without any damage.

Final words:-

You are all set to start selling. You have an e-commerce store, have your shipping
planned and the products are listed.Now the buyers will simply have to click on the buy
now option, make payments through the payment gateway you‘ve opted for and buy your
product.In order to attract more customers, use all the digital marketing tactics and take
your business to greater heights.

76
CHAPTER NO 5.0

5.1 SUCCESS FACTORS IN E-COMMERCE:-

As an entrepreneur, getting into ecommerce is a significant step towards growing a


business and increasing profits. For those who are just starting a business, ecommerce
can potentially be the foundation of a profitable company. Whichever you are, know that
ecommerce is not simply putting up your products online and hoping for the best.

There is a good bit of strategy that goes into making it work. Understanding how
ecommerce can affect a business is crucial in making it a success.

Before you dig deeper into the strategy, here‘s a great read, if you want to learn how to
use email marketing for ecommerce.

What is today ecommerce?


Ecommerce is now ubiquitous to business in developed countries, but developing
countries have yet to catch up with its adoption. However, things have been coming along
as ecommerce has started to grow in a big way throughout Asia, especially in China.

In the meantime, mobile has pretty much become the biggest thing in ecommerce these
days. However, a lot of businesses aren‘t converting to m-commerce fast enough to make
the most of the mobile user base. With the ecommerce market becoming more
competitive than ever before, this may change down the line, as businesses continue to
find new ways to gain an edge. years.

There is also a future in subscription-based business models. Presently, there are already
a number of online services that offer monthly subscriptions for a variety of things.
Expect this business model to grow even more in the coming

77
5.2 SIX FACTORS IN E-COMMERCE SUCCESS:-

5.2.1. REGULATION OF PRODUCT PRICING:-

It‘s natural for customers to compare prices between brands. It‘s expected of
entrepreneurs, as well, to be aware of how much competitors are charging for their goods.
Fortunately, there are different tools available to easily see and compare prices of
competing ecommerce websites, such as DataCrops and Import.io.

Various pricing strategies are employed to get the sweet spot in attractiveness and
earnings, depending on the market and the kind of products being priced. For instance,
one of the most common pricing strategies is keystone pricing, which is basically the
doubling of wholesale price.

That usually works, but consider additional factors so the price is just right, not too high
or too low. There is also discount pricing, psychological pricing, competitive pricing,
value-based pricing, and so on.

5.2.2. MAINTANING HIGH QUALITY PRODUCTS:-

For a long time, people had the notion that products from ecommerce sites were inferior
quality when compared to products from physical stores. While much of that myth no
longer exists these days, there is still a lot that must be done to convince customers that
your products are comparable in quality as those found in malls and other stores.

Make sure you procure your products from well-known and trusted suppliers of high
quality goods as well.

Your must uphold your standards consistently across the board. If you ever ship a subpar
product to a customer, it will definitely be a blow to your business even if you have a
return/replacement policy in place. Overall customer satisfaction is crucial to the
business‘ continued survival, and bad product quality can break your business down.

Keep System feedback transparent to the changes in input, and corrective action must be
taken as soon as possible. This is a continuing process as there are always other ways to
improve.

78
5.2.3. IMPROVING STORE ACCESSIBILITY:-

The design of your ecommerce website (online store) must accommodate all types of
customers. The online store is your main tool of communicating and transacting with
them. It must be able to relay information fast and concisely to evoke the trustworthiness
of your business to your customers.

Accessibility is of utmost importance as it helps your business be within reach to all sorts
of customers; i.e. people of different cultures, people with disabilities, etc. Being able to
have your online store set to other languages can potentially widen your customer base,
as long as they are a significant part of your audience. It may also be accessible to people
with visual disabilities like color blindness and impaired vision, by using high-contrast
visual theme and a larger font size for text.There are also things you can do to make the
online store viewed better by mobile devices, such as using responsive design and
optimizing your images so they can load faster. The more you improve your website‘s
accessibility, the more people can potentially view it.

5.2.4. MAKING A WONDERFUL FRIST IMPRESSION:-

Users know if they like a website or not by just a glance, and that first impression usually
lasts. Making a good first impression is imperative in getting more customers in your
online store. Make the best, eye-catching design possible, in order to entice people into
coming in and making use of your ecommerce website.

Good web design has principles you can follow that will help you convince people to
take a look at what you have. It should not be too loud nor too barren. Everything on it
should be easy to understand, yet maintains its own personality.

5.2.5. SECURING YOUR SHIPMENTS:-

One of the main concerns with ecommerce for both entrepreneurs and consumers is the
issue of security. With personal and financial information being handled online, there is

79
always the potential for ecommerce websites being compromised and customer data
stolen for nefarious purposes. This is especially true for credit card information that gets
entered in online every single day.

Make use of SSL to secure your customers‘ online shopping experience. SSL ensures that
transactions and data are encrypted so that there is less of a chance for them to be
compromised. Two-factor authentication is also a good way to further secure your online
store, and adding other verification methods (without making it too hard for your
customers) should help as well.

5.2.6. TACKING ADVANTAGES OF M-COMMERCE:-

The mobile user base has grown exponentially over the last few years, thereby the need
for online stores to become mobile commerce ready has become virtually mandatory at
this point. If your online store is not optimized for mobile devices, then you are missing
out on a lot of business

Some of the things that make an online store optimized for m-commerce are things like
responsive design with easy-to-use navigation menus, solid mobile search features, and
easy checkout and payment, all done over mobile. You don‘t need to have a mobile app
to do it, just have your website optimized for mobile if possible.

CONCLUSION:-

If you‘re looking to get into ecommerce, there is certainly no better time than now. With
a public that has been getting more and more familiar with the use of ecommerce to avail
of various products and services, we are going to see more amazing things through
ecommerce for both entrepreneurs and consumers.

80
CHAPTER NO 6.0

6.1 E-COMMERCE TECHNOLOGIES:-

6.1.1.THE MOBILE SHIFT:-

E-commerce has recently shifted to mobile platforms to increase its prominence; as a


result, e-commerce has emerged. Failing to provide a mobile-oriented shopping
experience may lead to avoiding state; therefore, businesses should concentrate on
equipping technologies with mobile-friendly virtues.

E-commerce Mobile Apps:- Apps that offer the ability to continually engage with
customers and familiarize themselves with new and relevant purchase options.

Location-based Marketing:- Businesses can know the geographical whereabouts of a


customer to market products to them that are oriented to a specific location.

VR/AR Guidance:- Integrating VR and AR technologies provides an immersive and


guided shopping experience to mobile users which allow customers to emotionally
connect with the brand.

Internet of Things (IOT) :- IOT stems from the need to better understand consumer
trends with a range of connectivity-enabled devices. The scope for delivering customized
mobile shopping experiences is augmented.

6.1.2.CONVERSATIONAL MARKETING:-
The traditional marketing channels flow as a one-way directive, while a new concept of
conversational marketing has arisen. Opening two-way communication mediums have
brought many advantages to achieving e-commerce success.

81
Hearing directly from customers makes more sense than predicting behaviors and issues
they face because businesses can establish a personalized, real-time, one-on-one
conversation with customers to understand their needs and problems.

Below are some of the most-efficient technologies:-

Chat bots – Chat bots are excellent conversational marketing tools. They provide
customers with answers using conversations taken from multiple channels, matching the
brand‘s tenor, and capable of handling multiple conversations at a time.

Live Chat - A prominent conversational feature where the support team can
communicate with customers through chats. It also allows for businesses to initiate a
preemptive chat invitation to particular customers having certain issues.

Mobile Messaging - Smartphones are another way for businesses to reach out to their
customers. While people are fatigued from the swarming promotional emails, businesses
can talk with them through mobile messaging apps.

6.1.3AUTOMATION AND CHAT BOTS FOR CSTOMER COMMUNICATIONS:-

Artificial Intelligence plays an important role in our life, having a major impact on how
we live, work etc. There are several examples of AI and automation tools we use from
customer service application to voice-powered assistants such as Apple‘s Siri, Google‘s
home & Amazon Echo. As per research, 40% of millennials are already using voice
search for online shopping.Businesses are integrating Chatbots in their system to delight
their customers and to improve brand image. Chatbots and virtual assistants are the future
of any business. With the help of Chatbots you can order food, checking luggage at the
airport, booking a hotel room, schedule flight and can get many recommendations
regarding anything you can think of.

82
Starbucks makes it easy for their customers to place an order for your favorite drink or
snack. The Chatbot will give you details regarding the status of your order, payment
details etc. Install Starbucks app and to find Starbucks Chat bot.

6.1.4. IMAGE SEARCH:-

Today e-commerce businesses are using various technologies to offer best services to
their customers. E-commerce businesses are integrating Image Search Technology on
their websites so customers can easily take the photo of products around them and can
find similar products on a different website in best deal.

Imagine that you are in a store and you see a beautiful couch but you found it costly, so in
this case, you take a picture and use image search to find similar products at a reasonable
rate. Integrating image search on your website will boost your revenue.

6.1.5. FAST & EASY CHECKOUT PROCESS:-

Cart abandonment is the most painful reason for losing a sale because it means that
despite all the marketing endeavors, the customer was considering buying the product,
but then changed their mind. Data-wise, the first quarter of this year has marked a 75.6%
global cart abandonment rate.One of the primary factors affecting cart abandonment is
the checkout procedure. Despite the accuracy the lead generation and nurturing metrics
are excellent, the efficiency of the checkout process can delineate the cart abandonment
privation.

Therefore, an e-commerce venture must embrace technology with fast and easy checkout
solutions, like:

 Speedy mobile payment solutions, including Apple Pay and Android Pay.
 Offering to save card details, to hasten iterative purchases.
 Providing one-page, hassle-free checkouts.
 Designating a range of payment options.

83
Adorned with technology, alleviating the difficulties that customers can potentially go
through during checkouts has become possible.

Conclusion:-

The technological revitalizations discussed throughout this article sum up the capabilities
that they can realize. Many successful e-commerce ventures invest in these technologies
because it helps them to strategically heighten their businesses‘ success.

84
CHAPTER NO 7.0

7.1 E-COMMERCE STANDARDS:-


7.1.1 ELECTRONIC DATA INTERCHANGE (EDI):- EDI is the electronic
interchange of business information using a standardized format; a process which allows
one company to send information to another company electronically rather than with
paper. Business entities conducting business electronically are called trading partners.

7.1.2 OPEN BUYING ON THE INTERNET (OBI):- OBI (Open Buying on


the Internet) is a proposed standard for business-to-business purchasing on the Internet,
aimed particularly at high-volume, low-cost-per-item transactions. OBI uses a number of
security technologies such as the digital certificate to allow orders to be placed and filled
securely.

7.1.3 THE OPEN TRANING PROTOCOL (OTP):-It is intended to standardize a


variety of payments related activities including purchases agreements. Receipts for
purchases, and payments . It was created as a computing standard to OBI by a group of
companies AT&T, Cyber cash, Hitachi. 18M, Oracal, Sun Micro Systems, and British
Telecome.

7.1.4 THE OPEN PROFILING STANDRARD (OPS):- Open Profiling Standard


(OPS) is a proposed standard for how Web users can control the personal information
they share with Web sites. OPS has a dual purpose.

7.1.5 SECURE SOCKET LAYER (SSL):- SSL (Secure Sockets Layer) is the standard
security technology for establishing an encrypted link between a web server and a
browser. This link ensures that all data passed between the web server and browsers
remain private and integral. SSL is an industry standard and is used by millions of
websites in the protection of their online transactions with their customers.

85
7.1.6 SECURE ELECTRONIC TRANSACTION (SET):- Secure Electronic
Transaction or SET is a system which ensures security and integrity of electronic
transactions done using credit cards in a scenario. SET is not some system that enables
payment but it is a security protocol applied on those payments.

7.1.7 TRUST:- The partnership of companies seeks to build public trust in e-commerce
by putting a Good Housekeeping-style seal of approval on sites that do not violate
consumer privacy.

86
7.2 ELECTRONIC STOCK TRADING:-
Electronic commerce creates threats and opportunities for brokers and intermediaries of
all kinds-not only travel agents, but insurance brokers, loan brokers, stockbrokers, and
brokers of food and mechanical parts as well. The threat to these intermediaries is that
their customers will bypass them by obtaining information and meeting their purchasing
needs through new, online channels. The opportunity for intermediaries is to use
electronic commerce to create one of those new channels, Thereby providing better
service than a customers could otherwise obtain.

By 1997 Web-based information and transaction capabilities spanned most of the


customers involvement cycle for buying and selling stocks and bonds. Private investors
could obtain readily available data and analysis software to identify stocks they wanted to
home pages of companies providing search engines and other services not specifically
related to finance. Investors, could make the purchases through Web transaction, touch
tone phones, or human agents. Their stock and bond holdings and transaction could be
tracked. They could obtain customers services information about the status of buy and
sell orders. How the traditional brokerages would respond and whether they could
maintain their much higher cost structure remained to be seen.

87
7.3 ELECTRONIC BANKING:-
Electronic banking has many names like e banking, virtual banking, online banking, or
internet banking. It is simply the use of electronic and telecommunications network for
delivering various banking products and services. Through e-banking, a customer can
access his account and conduct many transactions using his computer or mobile phone. In
this article, we will look at the importance and types of e-banking services.

7.4 TYPES OF E- BANKING

Banks offer various types of services through electronic banking platforms. These are of
three types:

Level 1 – This is the basic level of service that banks offer through their websites.
Through this service, the bank offers information about its products and services to
customers. Further, some banks may receive and reply to queries through e-mail too.

88
Level 2 – In this level, banks allow their customers to submit instructions or applications
for different services, check their account balance, etc. However, banks do not permit their
customers to do any fund-based transactions on their accounts.

Level 3 – In the third level, banks allow their customers to operate their accounts for funds
transfer, bill payments, and purchase and redeem securities, etc.Most traditional banks
offer e-banking services as an additional method of providing service. Further, many new
banks deliver banking services primarily through the internet or other electronic delivery
channels. Also, some banks are ‗internet only‘ banks without any physical branch
anywhere in the country.

Therefore, banking websites are of two types:

1. Informational Websites – These websites offer general information about the bank
and its products and services to customers.

2. Transactional Websites – These websites allow customers to conduct transactions


on the bank‘s website. Further, these transactions can range from a simple retail
account balance inquiry to a large business-to-business funds transfer. The following
table lists some common retail and wholesale e-banking services offered by banks
and financial institutions:

89
7.5 IMPORTANCE OF E- BANKING:-

We will look at the importance of electronic banking for banks, individual customers, and
businesses separately.

7.5.1 BANKS:-

1. Lesser transaction costs – electronic transactions are the cheapest modes of


transaction

2. A reduced margin for human error – since the information is relayed


electronically, there is no room for human error

3. Lesser paperwork – digital records reduce paperwork and make the process easier to
handle. Also, it is environment-friendly.

4. Reduced fixed costs – A lesser need for branches which translates into a lower fixed
cost.

5. More loyal customers – since e-banking services are customer-friendly, banks


experience higher loyalty from its customers.

7.5.2 CUSTOMERS:-

1. Convenience – a customer can access his account and transact from anywhere
24x7x365.

2. Lower cost per transaction – since the customer does not have to visit the branch
for every transaction, it saves him both time and money.

3. No geographical barriers – In traditional banking systems, geographical distances


could hamper certain banking transactions. However, with e-banking, geographical
barriers are reduced.

90
7.5.3 BUSINESSES:-

1. Account reviews – Business owners and designated staff members can access the
accounts quickly using an online banking interface. This allows them to review the
account activity and also ensure the smooth functioning of the account.

2. Better productivity – Electronic banking improves productivity. It allows the


automation of regular monthly payments and a host of other features to enhance the
productivity of the business.

3. Lower costs – Usually, costs in banking relationships are based on the resources
utilized. If a certain business requires more assistance with wire transfers, deposits,
etc., then the bank charges it higher fees. With online banking, these expenses are
minimized.

4. Lesser errors – Electronic banking helps reduce errors in regular banking


transactions. Bad handwriting, mistaken information, etc. can cause errors which can
prove costly. Also, easy review of the account activity enhances the accuracy of
financial transactions.

5. Reduced fraud – Electronic banking provides a digital footprint for all employees
who have the right to modify banking activities. Therefore, the business has better
visibility into its transactions making it difficult for any fraudsters to play mischief.

91
7.6 E-BANKING IN INDIA

In India, since 1997, when the ICICI Bank first offered internet banking services, today,
most new-generation banks offer the same to their customers. In fact, all major banks
provide e-banking services to their customers.

Popular services under e-banking in India

 ATMs (Automated Teller Machines)

 Telephone Banking

 Electronic Clearing Cards

 Smart Cards

 EFT (Electronic Funds Transfer) System

 ECS (Electronic Clearing Services)

 Mobile Banking

 Internet Banking

 Telebanking

 Door-step Banking.

Further, under Internet banking, the following services are available in India:

1. Bill payment – Every bank has a tie-up with different utility companies, service
providers, insurance companies, etc. across the country. The banks use these tie-ups
to offer online payment of bills (electricity, telephone, mobile phone, etc.). Also, most
banks charge a nominal one-time registration fee for this service. Further, the
customer can create a standing instruction to pay recurring bills automatically every
month.

92
2. Funds transfer – A customer can transfer funds from his account to another with the
same bank or even a different bank, anywhere in India. He needs to log in to his
account, specify the payee‘s name, account number, his bank, and branch along with
the transfer amount. The transfer is effected within a day or so.

3. Investing – Through electronic banking, a customer can open a fixed deposit with the
bank online through funds transfer. Further, if a customer has a demat account and a
linked bank account and trading account, he can buy or sell shares online too.
Additionally, some banks allow customers to purchase and redeem mutual fund units
from their online platforms as well.

4. Shopping – With an e-banking service, a customer can purchase goods or services


online and also pay for them using his account. Shopping at his fingertips.

93
7.7 SECURE ELECTRONIC TRANSACTION:-

Secure Electronic Transaction (SET) is a system for ensuring the security of financial
transactions on the Internet. It was supported initially by Master card, Visa, Microsoft,
Netscape, and others. With SET, a user is given an electronic wallet (digital certificate)
and a transaction digital signatures is conducted and verified using a combination of
digital certificates and among the purchaser, a merchant, and the purchaser's bank in a
way that ensures privacy and confidentiality. SET makes use of Netscape's Secure
Sockets Layer (SSL), Microsoft's Secure Transaction Technology (STT), and Terisa
System's Secure Hypertext Transfer Protocol (S-HTTP). SET uses some but not all
aspects of a public key infrastructure (PKI).

1. The customer opens a Mastercard or Visa bank account. Any issuer of a credit card is
some kind of bank.

2. The customer receives a digital certificate. This electronic file functions as a credit
card for online purchases or other transactions. It includes a public key with an
expiration date. It ha0s been through a digital switch to the bank to ensure its validity.

3. Third-party merchants also receive certificates from the bank. These certificates
include the merchant's public key and the bank's public key.

4. The customer places an order over a Web page, by phone, or some other means.

5. The customer's browser receives and confirms from the merchant's certificate that the
merchant is valid.

6. The browser sends the order information. This message is encrypted with the
merchant's public key, the payment information, which is encrypted with the bank's
public key (which can't be read by the merchant), and information that ensures the
payment can only be used with this particular order.

7. The merchant verifies the customer by checking the digital signature on the
customer's certificate. This may be done by referring the certificate to the bank or to a
third-party verifier.

94
8. The merchant sends the order message along to the bank. This includes the bank's
public key, the customer's payment information (which the merchant can't decode),
and the merchant's certificate.

9. The bank verifies the merchant and the message. The bank uses the digital signature
on the certificate with the message and verifies the payment part of the message.

10. The bank digitally signs and sends authorization to the merchant, who can then fill
the order.

95
CHAPTER NO 8.0

Implementation and User Feedback

8.1 IMPLEMENTATION

While there are number of software tools to develop and implement the web based
online shopping system, I have chosen those are open source, so that it will reduce
the developing cost of the project. For designing the project HTML, CSS, Bootstraps,
Apache server as web server, PHP for making the system dynamic. MySQL as
database server. All of the tools are open source.

8.1.1 HTML

In this project HTML used for design the structure. HTML is a markup language for
describing web documents and stands for Hyper Text Markup Language, a markup
language is a set of markup tags.HTML documents are described by HTML tags. Each
HTML tag describes different document content. HTML used because:

• Easy to learn.

• Easy to use.

• Supported by all browser.

8.1.2 PHP

In this project making the web page content dynamic and for interconnecting with
database coding done by PHP. PHP stats for Hypertext Preprocessor. The reason of
using PHP are:

• PHP can generate dynamic page content.

• PHP can create, open, read, write, delete, and close files on the server..

• PHP can send and receive cookies.

• PHP can add, delete, and modify data in database.


96
• PHP can be used to control user-access.

• PHP can encrypt data.

With PHP we cannot limited to output HTML. We can output images, PDF files, and
even flash movies. We can also output any text, such as XHTML and XML.

8.1.3 MySQL

MySQL is a database system used for the web application and it runs that runs on a
server. The reason of using MySQL are:

• MySQL is ideal for both small and large applications.

• MySQL is very fast, reliable, and easy to use.

• MySQL uses standard SQL.

• MySQL compiles on a number of platforms.

• MySQL is free to download and use.

8.1.4 XAMPP server

XAMPP is a free and open source cross-platform web server solution stack package
developed by Apache Friends, consisting mainly of the Apache HTTP Server,
MariaDB database, and interpreters for scripts written in the PHP and Perl
programming languages. XAMPP stands for Cross-Platform (X), Apache (A),
MariaDB (M), PHP (P) and Perl (P). It is a simple, lightweight Apache distribution
that makes it extremely easy for developers to create a local web server for testing
purposes. Everything needed to set up a web server – server application (Apache),
database (MariaDB), and scripting language (PHP) – is included in an extractable
file. XAMPP is also cross-platform, which means it works equally well on Linux, Mac
and Windows. Since most actual web server deployments use the same components
as XAMPP, it makes transitioning from a local test server to a live server extremely
easy as well.

97
8.2 TESTING

Exhaustive testing for the project is not possible. Some testing strategies and stage
designed manually. For this project Black box and White box testing are chosen. This
two type testing applied different part of the project.

8.2.1 BLACK BOX TESTING

Black Box Testing, also known as Behavioral Testing, is a software testing method in
which the internal structure/ design/ implementation of the item being tested is not
known to the tester.

These tests can be functional or non-functional, though usually functional. This


method is named so because the

Software program, in the eyes of the tester, is like a black box; inside which one
cannot see. This method attempts to find errors in the following categories:

• Incorrect or missing functions

• Interface errors

• Errors in data structures or external database access

98
• Behavior or performance errors

• Initialization and termination errors

8.2.2 WHITE BOX TESTING

White Box Testing also known as Clear Box Testing, Open Box Testing, Glass Box
Testing, Transparent Box Testing, Code-Based Testing or Structural Testing is a
software testing method in which the internal structure/ design/ implementation of
the item being tested is known to the tester. The tester chooses inputs to exercise
paths through the code and determines the appropriate outputs. Programming
know-how and the implementation knowledge is essential. White box testing is
testing beyond the user interface. The white box testing perform normally in this
project different part.

99
8.3 USER FEEDBACK

Topic: Web Based Application for Online Shopping System This survey is done for a
study on ‘Web Based Application for Online Shopping System’ for a project in M. Sc.
in C.S.E. Your answers will be strictly confidential and used only for the purpose of
the project. Thank you for your help.

Participants’ Information

Status: In-service of Web Based Online Shopping System

Name (optional):____________________________

Years of experience__________________________

Please answer the following questions:

1. What is the purpose of the project?

• To tell the product

• To promote the services

• To collect email address

• To build a brand/community

3.Use words to describe the outlook of the site ?


 Yes
 no
4.Do you have idea to improve the system?
 Yes
 No
 5. DO you prefer the website photos?

• Yes

• No

100
6. Is the site useful to you?

• Yes

• No

7. Quality of different parts of the site:

Name of the Topics Very Good Good Average Poor

Home Page

Services

Quality

Product

Delivery Method

About

Contacts

User feedback is one of the important part of a product, this survey is done by one of the
authority of the company employee, evaluate the feedback and take initiative to make the
system more convenient to the user as well as it will be a part of great satisfactory of
developing the system.

101
CHAPTER NO 9.0

9.1 COADING PAGE

9.1.1 MAIN PAGE (INDEX)

<?php
get_header(); ?>
<?php do_action( 'ocean_before_content_wrap' ); ?>
<div id="content-wrap" class="container clr">
<?php do_action( 'ocean_before_primary' ); ?>

<div id="primary" class="content-area clr">


<?php do_action( 'ocean_before_content' ); ?>
<div id="content" class="site-content clr">
<?php do_action( 'ocean_before_content_inner' ); ?>
<?php
// Check if posts exist

if ( have_posts() ) :
// Elementor `archive` location
if ( ! function_exists( 'elementor_theme_do_location' ) || !
elementor_theme_do_location( 'archive' ) ) {

// Add Support For EDD Archive Pages


if ( is_post_type_archive( 'download' ) || is_tax(
array( 'download_category', 'download_tag' ) ) ) {
do_action(
'ocean_before_archive_download' ); ?>
<div class="oceanwp-row <?php echo
esc_attr( oceanwp_edd_loop_classes() ); ?>">
<?php
// Archive Post Count for clearing
float

102
$oceanwp_count = 0;
while ( have_posts() ) : the_post();
$oceanwp_count++;
get_template_part(
'partials/edd/archive' );
if (
oceanwp_edd_entry_columns() == $oceanwp_count ) {
$oceanwp_count=0;
}
endwhile; ?>
</div>

<?php
do_action( 'ocean_after_archive_download'
);
} else { ?>

<div id="blog-entries" class="<?php


oceanwp_blog_wrap_classes(); ?>">
<?php
// Define counter for clearing floats
$oceanwp_count = 0; ?>
<?php
// Loop through posts
while ( have_posts() ) : the_post(); ?>
<?php
// Add to counter

$oceanwp_count++; ?>

<?php

103
// Get post entry content
get_template_part(
'partials/entry/layout', get_post_type() ); ?>
<?php
// Reset counter to clear floats
if ( oceanwp_blog_entry_columns()
== $oceanwp_count ) {
$oceanwp_count=0;
} ?>
<?php endwhile; ?>

</div><!-- #blog-entries -->

<?php
// Display post pagination
oceanwp_blog_pagination();
}
} ?>
<?php

// No posts found
else : ?>
<?php
// Display no post found notice
get_template_part( 'partials/none' ); ?>

<?php endif; ?>

<?php do_action( 'ocean_after_content_inner' ); ?>


</div><!-- #content –

104
9.1.1.1 HEADER

<!DOCTYPE html>
<html class="<?php echo esc_attr( oceanwp_html_classes() ); ?>" <?php
language_attributes(); ?><?php oceanwp_schema_markup( 'html' ); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<link rel="profile" href="http://gmpg.org/xfn/11">
<?php wp_head(); ?>
</head>

<body <?php body_class(); ?>>


<?php do_action( 'ocean_before_outer_wrap' ); ?>
<div id="outer-wrap" class="site clr">
<?php do_action( 'ocean_before_wrap' ); ?>
<div id="wrap" class="clr">
<?php do_action( 'ocean_top_bar' ); ?>

<?php do_action( 'ocean_header' ); ?>


<?php do_action( 'ocean_before_main' ); ?>
<main id="main" class="site-main clr"<?php oceanwp_schema_markup(
'main' ); ?>>
<?php do_action( 'ocean_page_header' ); ?>

9.1.1.2 FOOTER

<?php
</main><!-- #main -->
<?php do_action( 'ocean_after_main' ); ?>
<?php do_action( 'ocean_before_footer' ); ?>
<?php
// Elementor `footer` locatio

105
if ( ! function_exists( 'elementor_theme_do_location' ) || !
elementor_theme_do_location( 'footer' ) ) { ?>

<?php do_action( 'ocean_footer' ); ?>


<?php } ?>
<?php do_action( 'ocean_after_footer' ); ?>
</div><!-- #wrap --
<?php do_action( 'ocean_after_wrap' ); ?>
</div><!-- #outer-wrap -->

<?php do_action( 'ocean_after_outer_wrap' ); ?>


<?php
// If is not sticky footer
if ( ! class_exists( 'Ocean_Sticky_Footer' ) ) {
get_template_part( 'partials/scroll-top' );
} ?>

<?php
// Search overlay style
if ( 'overlay' == oceanwp_menu_search_style() ) {
get_template_part( 'partials/header/search-overlay' );
} ?>

<?php
// If sidebar mobile menu style
if ( 'sidebar' == oceanwp_mobile_menu_style() )
// Mobile panel close button
if ( get_theme_mod( 'ocean_mobile_menu_close_btn', true ) ) {

get_template_part( 'partials/mobile/mobile-sidr-close' );
} ?>

106
<?php
// Mobile Menu (if defined)
get_template_part( 'partials/mobile/mobile-nav' ); ?>

<?php
// Mobile search form
if ( get_theme_mod( 'ocean_mobile_menu_search', true ) ) {
get_template_part( 'partials/mobile/mobile-search' );
}

} ?>
<?php
// If full screen mobile menu style
if ( 'fullscreen' == oceanwp_mobile_menu_style() ) {
get_template_part( 'partials/mobile/mobile-fullscreen' );
} ?>

<?php wp_footer(); ?>


</body>
</html>

107
9.1.2 SEARCH

get_header(); ?>
<?php do_action( 'ocean_before_content_wrap' ); ?>

<div id="content-wrap" class="container clr">


<?php do_action( 'ocean_before_primary' ); ?>
<div id="primary" class="content-area clr">
<?php do_action( 'ocean_before_content' ); ?>
<div id="content" class="site-content clr">
<?php do_action( 'ocean_before_content_inner' ); ?>

<?php if ( have_posts() ) : ?>


<?php while ( have_posts() ) : the_post(); ?>
<?ph get_template_part(
'partials/search/layout' ); ? <?php endwhile; ?>

<?php oceanwp_pagination(); ?>


<?php else : ?>
<?php
// Display no post found notice
get_template_part( 'partials/none' ); ?>
<?php endif; ?>

<?php do_action( 'ocean_after_content_inner' ); ?>


</div><!-- #content -->
<?php do_action( 'ocean_after_content' ); ?>
</div><!-- #primary -->
<?php do_action( 'ocean_after_primary' ); ?>
</div><!-- #content-wrap -->
<?php do_action( 'ocean_after_content_wrap' ); ?>

<?php get_footer(); ?>

108
9.1.3 ADMIN BAR

<?php
$admin_bar_class = apply_filters( 'wp_admin_bar_class', 'WP_Admin_Bar' );

if ( class_exists( $admin_bar_class ) )
$wp_admin_bar = new $admin_bar_class;
else
return false;
$wp_admin_bar->initialize();
$wp_admin_bar->add_menus();

return true;
}
function wp_admin_bar_wp_menu( $wp_admin_bar ) {
if ( current_user_can( 'read' ) ) {
$about_url = self_admin_url( 'about.php' );
} elseif ( is_multisite() ) {

$about_url = get_dashboard_url( get_current_user_id(), 'about.php' );


} else {
$about_url = false;
}
$wp_logo_menu_args = array(
'id' => 'wp-logo',

'title' => '<span class="ab-icon"></span><span class="screen-reader-text">' . __(


'About WordPress' ) . '</span>',
'href' => $about_url,
);

// Set tabindex="0" to make sub menus accessible when no URL is available.

109
if ( ! $about_url ) {
$wp_logo_menu_args['meta'] = array(
'tabindex' => 0,
);

}
$wp_admin_bar->add_menu( $wp_logo_menu_args );
if ( $about_url ) {
// Add "About WordPress" link
$wp_admin_bar->add_menu( array(
'parent' => 'wp-logo',

'id' => 'about',


'title' => __('About WordPress'),
'href' => $about_url,
) );
// Add WordPress.org link
$wp_admin_bar->add_menu( array(

'parent' => 'wp-logo-external',


'id' => 'wporg',
'title' => __('WordPress.org'),
'href' => __('https://wordpress.org/'),
))
// Add codex link

$wp_admin_bar->add_menu( array(
'parent' => 'wp-logo-external',
'id' => 'documentation',
'title' => __('Documentation'),
'href' => __('https://codex.wordpress.org/');

110
// Add forums link
$wp_admin_bar->add_menu( array(
'parent' => 'wp-logo-external',

'id' => 'support-forums',


'title' => __('Support Forums'),
'href' => __('https://wordpress.org/support/'),
) );
// Add feedback link
$wp_admin_bar->add_menu( array(

'parent' => 'wp-logo-external',


'id' => 'feedback',
'title' => __('Feedback'),
'href' => __('https://wordpress.org/support/forum/requests-and-feedback'),
) );
}

function wp_admin_bar_sidebar_toggle( $wp_admin_bar ) {


if ( is_admin() ) {
$wp_admin_bar->add_menu( array(
'id' => 'menu-toggle',
'title' => '<span class="ab-icon"></span><span class="screen-reader-
text">' . __( 'Menu' ) . '</span>',
'href' => '#',
) );
}
}

function wp_admin_bar_my_account_item( $wp_admin_bar ) {

111
$user_id = get_current_user_id();
$current_user = wp_get_current_user();
if ( ! $user_id )
return;

if ( current_user_can( 'read' ) ) {
$profile_url = get_edit_profile_url( $user_id );
} elseif ( is_multisite() ) {
$profile_url = get_dashboard_url( $user_id, 'profile.php' );
} else {
$profile_url = false;

$avatar = get_avatar( $user_id, 26 );


/* translators: %s: current user's display name */
$howdy = sprintf( __( 'Howdy, %s' ), '<span class="display-name">' .
$current_user->display_name . '</span>' );
$class = empty( $avatar ) ? '' : 'with-avatar';

$wp_admin_bar->add_menu( array(
'id' => 'my-account',

'parent' => 'top-secondary',


'title' => $howdy . $avatar,
'href' => $profile_url,
'meta' => array(
'class' => $class,
),

) );
}

112
function wp_admin_bar_my_account_menu( $wp_admin_bar ) {
$user_id = get_current_user_id();
$current_user = wp_get_current_user();

if ( ! $user_id )
return;
if ( current_user_can( 'read' ) ) {
$profile_url = get_edit_profile_url( $user_id );
} elseif ( is_multisite() ) {
$profile_url = get_dashboard_url( $user_id, 'profile.php' );

} else {
$profile_url = false;
}
$wp_admin_bar->add_group( array(
'parent' => 'my-account',
'id' => 'user-actions',

) );
$user_info = get_avatar( $user_id, 64 );
$user_info .= "<span class='display-name'>{$current_user-
>display_name}</span>";

if ( $current_user->display_name !== $current_user->user_login )


$user_info .= "<span class='username'>{$current_user->user_login}</span>";
$wp_admin_bar->add_menu( array(
'parent' => 'user-actions',
'id' => 'user-info',
'title' => $user_info,

'href' => $profile_url,


'meta' => array(

113
'tabindex' => -1,
),
) );
if ( false !== $profile_url ) {

$wp_admin_bar->add_menu( array(
'parent' => 'user-actions',
'id' => 'edit-profile',
'title' => __( 'Edit My Profile' ),
'href' => $profile_url,
) );

}
$wp_admin_bar->add_menu( array(
'parent' => 'user-actions',
'id' => 'logout',
'title' => __( 'Log Out' ),
'href' => wp_logout_url(),

) );
}
function wp_admin_bar_site_menu( $wp_admin_bar ) {
// Don't show for logged out users.
if ( ! is_user_logged_in() )
return;

// Show only when the user is a member of this site, or they're a super admin.
if ( ! is_user_member_of_blog() && ! current_user_can( 'manage_network' ) ) {
return;
}
$blogname = get_bloginfo('name');

114
if ( ! $blogname ) {
$blogname = preg_replace( '#^(https?://)?(www.)?#', '', get_home_url() );
}
if ( is_network_admin() ) {

/* translators: %s: site name */


$blogname = sprintf( __( 'Network Admin: %s' ), esc_html( get_network()-
>site_name ) );
} elseif ( is_user_admin() ) {

/* translators: %s: site name */


$blogname = sprintf( __( 'User Dashboard: %s' ), esc_html( get_network()-
>site_name ) );
}

$title = wp_html_excerpt( $blogname, 40, '&hellip;' );


$wp_admin_bar->add_menu( array(
'id' => 'site-name',
'title' => $title,
'href' => ( is_admin() || ! current_user_can( 'read' ) ) ? home_url( '/' ) :
admin_url(),
) );
// Create submenu items.
if ( is_admin() ) {
// Add an option to visit the site.

$wp_admin_bar->add_menu( array(
'parent' => 'site-name',
'id' => 'view-site',
'title' => __( 'Visit Site' ),
'href' => home_url( '/' ),
) );

115
if ( is_blog_admin() && is_multisite() && current_user_can( 'manage_sites' ) ) {
$wp_admin_bar->add_menu( array(
'parent' => 'site-name',
'id' => 'edit-site',

'title' => __( 'Edit Site' ),


'href' => network_admin_url( 'site-info.php?id=' .
get_current_blog_id() ),
) );

}
} ele if ( current_user_can( 'read' ) ) {
// We're on the front end, link to the Dashboard.
$wp_admin_bar->add_menu( array(
'parent' => 'site-name',
'id' => 'dashboard',

'title' => __( 'Dashboard' ),


'href' => admin_url(),
) );
// Add the appearance submenu items.
wp_admin_bar_appearance_menu( $wp_admin_bar );
}

116
9.1.4 BOOKMARK

<?php
function get_bookmark($bookmark, $output = OBJECT, $filter = 'raw') {

global $wpdb;
if ( empty($bookmark) ) {
if ( isset($GLOBALS['link']) )
$_bookmark = & $GLOBALS['link'];
else
$_bookmark = null;

} elseif ( is_object($bookmark) ) {
wp_cache_add($bookmark->link_id, $bookmark, 'bookmark');
$_bookmark = $bookmark;
} else {
if ( isset($GLOBALS['link']) && ($GLOBALS['link']->link_id == $bookmark) )
{
$_bookmark = & $GLOBALS['link'];
} elseif ( ! $_bookmark = wp_cache_get($bookmark, 'bookmark') ) {
$_bookmark = $wpdb->get_row($wpdb->prepare("SELECT * FROM
$wpdb->links WHERE link_id = %d LIMIT 1", $bookmark));
if ( $_bookmark ) {
$_bookmark->link_category = array_unique(
wp_get_object_terms( $_bookmark->link_id, 'link_category', array( 'fields' => 'ids' ) ) );
wp_cache_add( $_bookmark->link_id, $_bookmark, 'bookmark' );
}
}
}
if ( ! $_bookmark )
return $_bookmark;

117
$_bookmark = sanitize_bookmark($_bookmark, $filter);
if ( $output == OBJECT ) {
return $_bookmark;
} elseif ( $output == ARRAY_A ) {

return get_object_vars($_bookmark);
} elseif ( $output == ARRAY_N ) {
return array_values(get_object_vars($_bookmark));
} else {
return $_bookmark;
}

}
function get_bookmark_field( $field, $bookmark, $context = 'display' ) {
$bookmark = (int) $bookmark;
$bookmark = get_bookmark( $bookmark );
if ( is_wp_error($bookmark) )
return $bookmark;

if ( !is_object($bookmark) )
return '';
if ( !isset($bookmark->$field) )
return '';
return sanitize_bookmark_field($field, $bookmark->$field, $bookmark->link_id,
$context);
}
function get_bookmarks( $args = '' ) {
global $wpdb;
$defaults = array(

'orderby' => 'name', 'order' => 'ASC',


'limit' => -1, 'category' => '',

118
'category_name' => '', 'hide_invisible' => 1,
'show_updated' => 0, 'include' => '',
'exclude' => '', 'search' => ''
);

$r = wp_parse_args( $args, $defaults );


key = md5( serialize( $r ) );
$cache = false;
if ( 'rand' !== $r['orderby'] && $cache = wp_cache_get( 'get_bookmarks',
'bookmark' ) ) {
if ( is_array( $cache ) && isset( $cache[ $key ] ) ) {
$bookmarks = $cache[ $key ];

return apply_filters( 'get_bookmarks', $bookmarks, $r );


}

}
if ( ! is_array( $cache ) ) {
$cache = array();
}
$inclusions = '';
if ( ! empty( $r['include'] ) ) {

$r['exclude'] = ''; //ignore exclude, category, and category_name params if using


include
$r['category'] = '';
$r['category_name'] = '';

$inclinks = preg_split( '/[\s,]+/', $r['include'] );


if ( count( $inclinks ) ) {
foreach ( $inclinks as $inclink ) {
if ( empty( $inclusions ) ) {

119
$inclusions = ' AND ( link_id = ' . intval( $inclink ) . ' ';
} else {
$inclusions .= ' OR link_id = ' . intval( $inclink ) . ' ';
}

}
}
}
if (! empty( $inclusions ) ) {
$inclusions .= ')';
}

$exclusions = '';
if ( ! empty( $r['exclude'] ) ) {
$exlinks = preg_split( '/[\s,]+/', $r['exclude'] );
if ( count( $exlinks ) ) {
foreach ( $exlinks as $exlink ) {
if ( empty( $exclusions ) ) {

$exclusions = ' AND ( link_id <> ' . intval( $exlink ) . ' ';
} else {
$exclusions .= ' AND link_id <> ' . intval( $exlink ) . ' ';
}
}
}

}
if ( ! empty( $exclusions ) ) {
$exclusions .= ')';
}
if ( ! empty( $r['category_name'] ) ) {

120
if ( $r['category'] = get_term_by('name', $r['category_name'], 'link_category') ) {
$r['category'] = $r['category']->term_id;
} else {
$cache[ $key ] = array();

wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );


/** This filter is documented in wp-includes/bookmark.php */
return apply_filters( 'get_bookmarks', array(), $r );
}
}
$search = '';

if ( ! empty( $r['search'] ) ) {
$like = '%' . $wpdb->esc_like( $r['search'] ) . '%';
$search = $wpdb->prepare(" AND ( (link_url LIKE %s) OR (link_name LIKE
%s) OR (link_description LIKE %s) ) ", $like, $like, $like );

}
$category_query = '';
$join = '';
if ( ! empty( $r['category'] ) ) {
$incategories = preg_split( '/[\s,]+/', $r['category'] );
if ( count($incategories) ) {

foreach ( $incategories as $incat ) {


if ( empty( $category_query ) ) {
$category_query = ' AND ( tt.term_id = ' . intval( $incat ) . '
';

} else {
$category_query .= ' OR tt.term_id = ' . intval( $incat ) . ' ';
}
}

121
}
}
if ( ! empty( $category_query ) ) {
$category_query .= ") AND taxonomy = 'link_category'";

$join = " INNER JOIN $wpdb->term_relationships AS tr ON ($wpdb-


>links.link_id = tr.object_id) INNER JOIN $wpdb->term_taxonomy as tt ON
tt.term_taxonomy_id = tr.term_taxonomy_id";
}

if ( $r['show_updated'] ) {
$recently_updated_test = ", IF (DATE_ADD(link_updated, INTERVAL 120
MINUTE) >= NOW(), 1,0) as recently_updated ";
} else {
$recently_updated_test = '';
}

$get_updated = ( $r['show_updated'] ) ? ', UNIX_TIMESTAMP(link_updated) AS


link_updated_f ' : '';

$orderby = strtolower( $r['orderby'] );


$length = '';
switch ( $orderby ) {
case 'length':
$length = ", CHAR_LENGTH(link_name) AS length";
break;
case 'rand':

$orderby = 'rand()';
break;
case 'link_id':

122
$orderby = "$wpdb->links.link_id";
break;
default:
$orderparams = array();

$keys = array( 'link_id', 'link_name', 'link_url', 'link_visible', 'link_rating',


'link_owner', 'link_updated', 'link_notes', 'link_description' );
foreach ( explode( ',', $orderby ) as $ordparam ) {
$ordparam = trim( $ordparam );

if ( in_array( 'link_' . $ordparam, $keys ) ) {


$orderparams[] = 'link_' . $ordparam;
} elseif ( in_array( $ordparam, $keys ) ) {
$orderparams[] = $ordparam;
}

}
$orderby = implode( ',', $orderparams );
}

if ( empty( $orderby ) ) {
$orderby = 'link_name';

$order = strtoupper( $r['order'] );


if ( '' !== $order && ! in_array( $order, array( 'ASC', 'DESC' ) ) ) {
$order = 'ASC';
}

$visible = '';

123
if ( $r['hide_invisible'] ) {
$visible = "AND link_visible = 'Y'";
}

$query = "SELECT * $length $recently_updated_test $get_updated FROM $wpdb-


>links $join WHERE 1=1 $visible $category_query";
$query .= " $exclusions $inclusions $search";
$query .= " ORDER BY $orderby $order";

if ( $r['limit'] != -1 ) {
$query .= ' LIMIT ' . $r['limit'];
}
$results = $wpdb->get_results( $query );
if ( 'rand()' !== $orderby ) {
$cache[ $key ] = $results;

wp_cache_set( 'get_bookmarks', $cache, 'bookmark' );


}
/** This filter is documented in wp-includes/bookmark.php */
return apply_filters( 'get_bookmarks', $results, $r );
}
function sanitize_bookmark($bookmark, $context = 'display') {

$fields = array('link_id', 'link_url', 'link_name', 'link_image', 'link_target',


'link_category',
'link_description', 'link_visible', 'link_owner', 'link_rating', 'link_updated',
'link_rel', 'link_notes', 'link_rss', );

if ( is_object($bookmark) ) {
$do_object = true;
$link_id = $bookmark->link_id;
} else {

124
$do_object = false;
$link_id = $bookmark['link_id'];
}
foreach ( $fields as $field ) {

if ( $do_object ) {
if ( isset($bookmark->$field) )
$bookmark->$field = sanitize_bookmark_field($field, $bookmark-
>$field, $link_id, $context);

} else {
if ( isset($bookmark[$field]) )
$bookmark[$field] = sanitize_bookmark_field($field,
$bookmark[$field], $link_id, $context);

}
}
return $bookmark;
}
function sanitize_bookmark_field( $field, $value, $bookmark_id, $context ) {
switch ( $field ) {

case 'link_id' : // ints


case 'link_rating' :
$value = (int) $value;
break;
case 'link_category' : // array( ints )
$value = array_map('absint', (array) $value);

// We return here so that the categories aren't filtered.


// The 'link_category' filter is for the name of a link category, not an array of a
link's link categories
return $value

125
case 'link_visible' : // bool stored as Y|N
$value = preg_replace('/[^YNyn]/', '', $value);
break;
case 'link_target' : // "enum"

$targets = array('_top', '_blank');


if ( ! in_array($value, $targets) )
$value = '';
break;
}

if ( 'raw' == $context )
return $value;

if ( 'edit' == $context ) {
/** This filter is documented in wp-includes/post.php */
$value = apply_filters( "edit_{$field}", $value, $bookmark_id );

if ( 'link_notes' == $field ) {
$value = esc_html( $value ); // textarea_escaped
} else {
$value = esc_attr($value);
}

} elseif ( 'db' == $context ) {


/** This filter is documented in wp-includes/post.php */
$value = apply_filters( "pre_{$field}", $value );
} else {

126
return $value;
}
function clean_bookmark_cache( $bookmark_id ) {
wp_cache_delete( $bookmark_id, 'bookmark' );

wp_cache_delete( 'get_bookmarks', 'bookmark' );


clean_object_term_cache( $bookmark_id, 'link');
}

9.1.5.CATEGORY

<?php
function get_categories( $args = '' ) {
$defaults = array( 'taxonomy' => 'category' );
$args = wp_parse_args( $args, $defaults );
$taxonomy = $args['taxonomy'];
$taxonomy = apply_filters( 'get_categories_taxonomy', $taxonomy, $args );

// Back compat
if ( isset($args['type']) && 'link' == $args['type'] ) {
_deprecated_argument( __FUNCTION__, '3.0.0',
/* translators: 1: "type => link", 2: "taxonomy => link_category" */
sprintf( __( '%1$s is deprecated. Use %2$s instead.' ),
'<code>type => link</code>',

'<code>taxonomy => link_category</code>'


)
);
$taxonomy = $args['taxonomy'] = 'link_category';
}
$categories = get_terms( $taxonomy, $args );

127
if ( is_wp_error( $categories ) ) {
$categories = array();
} else {
$categories = (array) $categories;

foreach ( array_keys( $categories ) as $k ) {


_make_cat_compat( $categories[ $k ] );
}
}

return $categories;

/**
* Retrieves category data given a category ID or category object.
function get_category( $category, $output = OBJECT, $filter = 'raw' ) {
$category = get_term( $category, 'category', $output, $filter );

if ( is_wp_error( $category ) )
return $category;

_make_cat_compat( $category );

return $category;
}
function get_category_by_path( $category_path, $full_match = true, $output = OBJECT
){

$category_path = rawurlencode( urldecode( $category_path ) );


$category_path = str_replace( '%2F', '/', $category_path );

128
$category_path = str_replace( '%20', ' ', $category_path );
$category_paths = '/' . trim( $category_path, '/' );
$leaf_path = sanitize_title( basename( $category_paths ) );
$category_paths = explode( '/', $category_paths );

$full_path = '';
foreach ( (array) $category_paths as $pathdir ) {
$full_path .= ( $pathdir != '' ? '/' : '' ) . sanitize_title( $pathdir );
}
$categories = get_terms( 'category', array('get' => 'all', 'slug' => $leaf_path) );

if ( empty( $categories ) ) {
return;
}
foreach ( $categories as $category ) {
$path = '/' . $leaf_path;
$curcategory = $category;

while ( ( $curcategory->parent != 0 ) && ( $curcategory->parent != $curcategory-


>term_id ) ) {
$curcategory = get_term( $curcategory->parent, 'category' );
if ( is_wp_error( $curcategory ) ) {

return $curcategory;
}
$path = '/' . $curcategory->slug . $path;
}
if ( $path == $full_path ) {
$category = get_term( $category->term_id, 'category', $output );

_make_cat_compat( $category );
return $category;

129
}
}

// If full matching is not required, return the first cat that matches the leaf.

if ( ! $full_match ) {
$category = get_term( reset( $categories )->term_id, 'category', $output );
_make_cat_compat( $category );
return $category;
}
}

function get_cat_name( $cat_id ) {


$cat_id = (int) $cat_id;
$category = get_term( $cat_id, 'category' );
if ( ! $category || is_wp_error( $category ) )
return '';
return $category->name;

}
function cat_is_ancestor_of( $cat1, $cat2 ) {
return term_is_ancestor_of( $cat1, $cat2, 'category' );
}
function sanitize_category( $category, $context = 'display' ) {
return sanitize_term( $category, 'category', $context );

}
function get_tags( $args = '' ) {
$tags = get_terms( 'post_tag', $args );

if ( empty( $tags ) ) {

130
$return = array();
return $return;
}
function _make_cat_compat( &$category ) {

if ( is_object( $category ) && ! is_wp_error( $category ) ) {


$category->cat_ID = $category->term_id;
$category->category_count = $category->count;
$category->category_description = $category->description;
$category->cat_name = $category->name;
$category->category_nicename = $category->slug;

$category->category_parent = $category->parent;
} elseif ( is_array( $category ) && isset( $category['term_id'] ) ) {
$category['cat_ID'] = &$category['term_id'];
$category['category_count'] = &$category['count'];
$category['category_description'] = &$category['description'];
$category['cat_name'] = &$category['name'];

$category['category_nicename'] = &$category['slug'];
$category['category_parent'] = &$category['parent'];
}
}

131
9.1.6 LOG-IN

<?php
require( dirname(__FILE__) . '/wp-load.php' );

// Redirect to https login if forced to use SSL


if ( force_ssl_admin() && ! is_ssl() ) {
if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) {
wp_safe_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
exit();

} else {
wp_safe_redirect( 'https://' . $_SERVER['HTTP_HOST'] .
$_SERVER['REQUEST_URI'] );
exit();

}
}
function login_header( $title = 'Log In', $message = '', $wp_error = null ) {
global $error, $interim_login, $action;

// Don't index any of these forms

add_action( 'login_head', 'wp_sensitive_page_meta' );


add_action( 'login_head', 'wp_login_viewport_meta' );
if ( ! is_wp_error( $wp_error ) ) {
$wp_error = new WP_Error();
}
// Shake it!
$shake_error_codes = array( 'empty_password', 'empty_email', 'invalid_email',
'invalidcombo', 'empty_username', 'invalid_username', 'incorrect_password' );

132
$login_title = apply_filters( 'login_title', $login_title, $title );
?><!DOCTYPE html>
<!--[if IE 8]>
<html xmlns="http://www.w3.org/1999/xhtml" class="ie8" <?php
language_attributes(); ?>>
<![endif]-->
<!--[if !(IE 8) ]><!-->
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>

<!--<![endif]-->
<head>
<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>;
charset=<?php bloginfo('charset'); ?>" />

<title><?php echo $login_title; ?></title>


<?php

wp_enqueue_style( 'login' );
do_action( 'login_head' );
if ( is_multisite() ) {

$login_header_url = network_home_url();
$login_header_title = get_network()->site_name;
} else {
$login_header_url = __( 'https://wordpress.org/' );
$login_header_title = __( 'Powered by WordPress' );
}

if ( is_multisite() ) {
$login_header_text = get_bloginfo( 'name', 'display' );
} else {
$login_header_text = $login_header_title;

133
}

$classes = array( 'login-action-' . $action, 'wp-core-ui' );


if ( is_rtl() )

$classes[] = 'rtl';
if ( $interim_login ) {
$classes[] = 'interim-login';
?>
<style type="text/css">html{background-color: transparent;}</style>
<?php

if ( 'success' === $interim_login )


$classes[] = 'interim-login-success';
}
$classes[] =' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-',
get_locale() ) ) );
do_action( 'login_header' );
?>
<div id="login">
<h1><a href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo
esc_attr( $login_header_title ); ?>" tabindex="-1"><?php echo $login_header_text;
?></a></h1>

<?php

unset( $login_header_url, $login_header_title );


$message = apply_filters( 'login_message', $message );
if ( !empty( $message ) )
echo $message . "\n";

134
// In case a plugin uses $error rather than the $wp_errors object
if ( !empty( $error ) ) {
$wp_error->add('error', $error);

unset($error);
}
if ( $wp_error->get_error_code() ) {
$errors = '';
$messages = '';
foreach ( $wp_error->get_error_codes() as $code ) {

$severity = $wp_error->get_error_data( $code );


foreach ( $wp_error->get_error_messages( $code ) as $error_message ) {
if ( 'message' == $severity )
$messages .= ' ' . $error_message . "<br />\n";
else
$errors .= ' ' . $error_message . "<br />\n";

}
}
if ( ! empty( $errors ) ) {

echo '<div id="login_error">' . apply_filters( 'login_errors', $errors ) .


"</div>\n";
}
if ( ! empty( $messages ) ) {

echo '<p class="message">' . apply_filters( 'login_messages', $messages )


. "</p>\n";
}

135
}
} // End of login_header()
function login_ ($input_id = '') {
global $interim_login;

// Don't allow interim logins to navigate away from the page.


if ( ! $interim_login ): ?>
<p id="backtoblog"><a href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php
/* translators: %s: site title */
printf( _x( '&larr; Back to %s', 'site' ), get_bloginfo( 'title', 'display' ) );

?></a></p>
<?php the_privacy_policy_link( '<div class="privacy-policy-page-link">', '</div>'
); ?>
<?php endif; ?>

</div>

<?php if ( !empty($input_id) ) : ?>


<script type="text/javascript">
try{document.getElementById('<?php echo $input_id; ?>').focus();}catch(e){}

if(typeof wpOnload=='function')wpOnload();
</script>
<?php endif; ?>

<?php

do_action( 'login_footer' ); ?>


<div class="clear"></div>

136
</body>
</html>
<?php
}

function wp_shake_js() {
?>
<script type="text/javascript">
addLoadEvent = function(func){if(typeof
jQuery!="undefined")jQuery(document).ready(func);else if(typeof
wpOnload!='function'){wpOnload=func;}else{var
oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
function s(id,pos){g(id).left=pos+'px';}
function g(id){return document.getElementById(id).style;}
function
shake(id,a,d){c=a.shift();s(id,c);if(a.length>0){setTimeout(function(){shake(id,a,d);},d);}
else{try{g(id).position='static';wp_attempt_focus();}catch(e){}}}
addLoadEvent(function(){ var p=new Array(15,30,15,0,-15,-30,-
15,0);p=p.concat(p.concat(p));var
i=document.forms[0].id;g(i).position='relative';shake(i,p,20);});
</script>

<?php
}

function wp_login_viewport_meta() {
?>
<meta name="viewport" content="width=device-width" />

<?php
}
function retrieve_password() {
$errors = new WP_Error();

137
if ( empty( $_POST['user_login'] ) || ! is_string( $_POST['user_login'] ) ) {
$errors->add('empty_username', __('<strong>ERROR</strong>: Enter a
username or email address.'));
} elseif ( strpos( $_POST['user_login'], '@' ) ) {
$user_data = get_user_by( 'email', trim( wp_unslash( $_POST['user_login'] ) ) );
if ( empty( $user_data ) )
$errors->add('invalid_email', __('<strong>ERROR</strong>: There is no
user registered with that email address.'));
} else {
$login = trim($_POST['user_login']);
$user_data = get_user_by('login', $login);
}

do_action( 'lostpassword_post', $errors );

if ( $errors->get_error_code() )
return $errors;

if ( !$user_data ) {

$errors->add('invalidcombo', __('<strong>ERROR</strong>: Invalid username or


email.'));
return $errors;
}

// Redefining user_login ensures we return the right case in the email.


$user_login = $user_data->user_login;
$user_email = $user_data->user_email;
$key = get_password_reset_key( $user_data );
if ( is_wp_error( $key ) ) {
return $key;

138
}

if ( is_multisite() ) {
$site_name = get_network()->site_name;

} else {

$site_name = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES


);

$message = __( 'Someone has requested a password reset for the following
account:' ) . "\r\n\r\n";

/* translators: %s: site name */


$message .= sprintf( __( 'Site Name: %s'), $site_name ) . "\r\n\r\n";
/* translators: %s: user login */
$message .= sprintf( __( 'Username: %s'), $user_login ) . "\r\n\r\n";
$message .= __( 'If this was a mistake, just ignore this email and nothing will
happen.' ) . "\r\n\r\n";
$message .= __( 'To reset your password, visit the following address:' ) . "\r\n\r\n";
$message .= '<' . network_site_url( "wp-login.php?action=rp&key=$key&login=" .
rawurlencode( $user_login ), 'login' ) . ">\r\n";

/* translators: Password reset email subject. %s: Site name */


$title = sprintf( __( '[%s] Password Reset' ), $site_name );
$message = apply_filters( 'retrieve_password_message', $message, $key,
$user_login, $user_data );

if ( $message && !wp_mail( $user_email, wp_specialchars_decode( $title ),


$message ) )

139
wp_die( __('The email could not be sent.') . "<br />\n" . __('Possible reason: your
host may have disabled the mail() function.') );

return true;
}
$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : 'login';
$errors = new WP_Error();

if ( isset($_GET['key']) )
$action = 'resetpass';

// validate action so as to default to the login screen


if ( !in_array( $action, array( 'postpass', 'logout', 'lostpassword', 'retrievepassword',
'resetpass', 'rp', 'register', 'login', 'confirmaction' ), true ) && false === has_filter(
'login_form_' . $action ) )
$action = 'login';

nocache_headers();

header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));

if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set

if ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] !=


$_SERVER['PHP_SELF']) )
$_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '',
$_SERVER['PHP_SELF'] );

$url = dirname( set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] .


$_SERVER['PHP_SELF'] ) );
if ( $url != get_option( 'siteurl' ) )

140
update_option( 'siteurl', $url );
}

//Set a cookie now to see if they are supported by the browser.

$secure = ( 'https' === parse_url( wp_login_url(), PHP_URL_SCHEME ) );


setcookie( TEST_COOKIE, 'WP Cookie check', 0, COOKIEPATH,
COOKIE_DOMAIN, $secure );
if ( SITECOOKIEPATH != COOKIEPATH )

setcookie( TEST_COOKIE, 'WP Cookie check', 0, SITECOOKIEPATH,


COOKIE_DOMAIN, $secure );

$lang = ! empty( $_GET['wp_lang'] ) ? sanitize_text_field( $_GET['wp_lang'] ) :


'';
do_action( 'login_init' );

do_action( "login_form_{$action}" );

$http_post = ('POST' == $_SERVER['REQUEST_METHOD']);


$interim_login = isset($_REQUEST['interim-login']);
$login_link_separator = apply_filters( 'login_link_separator', ' | ' );
switch ($action) {
case 'postpass' :

if ( ! array_key_exists( 'post_password', $_POST ) ) {


wp_safe_redirect( wp_get_referer() );
exit();
}

require_once ABSPATH . WPINC . '/class-phpass.php';

141
$hasher = new PasswordHash( 8, true );
$expire = apply_filters( 'post_password_expires', time() + 10 *
DAY_IN_SECONDS );
$referer = wp_get_referer();
if ( $referer ) {
$secure = ( 'https' === parse_url( $referer, PHP_URL_SCHEME ) );
} else {
$secure = false;

}
setcookie( 'wp-postpass_' . COOKIEHASH, $hasher->HashPassword( wp_unslash(
$_POST['post_password'] ) ), $expire, COOKIEPATH, COOKIE_DOMAIN, $secure );

if ( $switched_locale ) {
restore_previous_locale();
}
wp_safe_redirect( wp_get_referer() );
exit();
case 'logout' :

check_admin_referer('log-out');
$user = wp_get_current_user();
wp_logout();
if ( ! empty( $_REQUEST['redirect_to'] ) ) {
$redirect_to = $requested_redirect_to = $_REQUEST['redirect_to'];
} else {

$redirect_to = 'wp-login.php?loggedout=true';
$requested_redirect_to = '';
}

142
if ( $switched_locale ) {
restore_previous_locale();
}
$redirect_to = apply_filters( 'logout_redirect', $redirect_to, $requested_redirect_to,
$user );
wp_safe_redirect( $redirect_to );
exit();
case 'lostpassword' :

case 'retrievepassword' :
if ( $http_post ) {
$errors = retrieve_password();
if ( !is_wp_error($errors) ) {
$redirect_to = !empty( $_REQUEST['redirect_to'] ) ?
$_REQUEST['redirect_to'] : 'wp-login.php?checkemail=confirm';
wp_safe_redirect( $redirect_to );
exit();
}
}

if ( isset( $_GET['error'] ) ) {
if ( 'invalidkey' == $_GET['error'] ) {
$errors->add( 'invalidkey', __( 'Your password reset link appears to be
invalid. Please request a new link below.' ) );
} elseif ( 'expiredkey' == $_GET['error'] ) {
$errors->add( 'expiredkey', __( 'Your password reset link has expired.
Please request a new link below.' ) );

}
}

143
$lostpassword_redirect = ! empty( $_REQUEST['redirect_to'] ) ?
$_REQUEST['redirect_to'] : '';

do_action( 'lost_password' );

login_header(__('Lost Password'), '<p class="message">' . __('Please enter your


username or email address. You will receive a link to create a new password via email.') .
'</p>', $errors);
$user_login = '';
if ( isset( $_POST['user_login'] ) && is_string( $_POST['user_login'] ) ) {
$user_login = wp_unslash( $_POST['user_login'] );
}
?>
<form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url(
network_site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>"
method="post">
<p>
<label for="user_login" ><?php _e( 'Username or Email Address' ); ?><br />

<input type="text" name="user_login" id="user_login" class="input"


value="<?php echo esc_attr($user_login); ?>" size="20" /></label>
</p>
<?php

do_action( 'lostpassword_form' ); ?>


<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to
); ?>" />
<p class="submit"><input type="submit" name="wp-submit" id="wp-submit"
class="button button-primary button-large" value="<?php esc_attr_e('Get New
Password'); ?>" /></p>

</form>

<p id="nav">

144
<a href="<?php echo esc_url( wp_login_url() ); ?>"><?php _e('Log in') ?></a>
<?php
if ( get_option( 'users_can_register' ) ) :
$registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url()
), __( 'Register' ) );
echo esc_html( $login_link_separator );
/** This filter is documented in wp-includes/general-template.php */
echo apply_filters( 'register', $registration_url );

endif;
?>
</p>
<?php
login_footer('user_login');
if ( $switched_locale ) {

restore_previous_locale();
}
break;
case 'resetpass' :
case 'rp' :
list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );

$rp_cookie = 'wp-resetpass-' . COOKIEHASH;


if ( isset( $_GET['key'] ) ) {
$value = sprintf( '%s:%s', wp_unslash( $_GET['login'] ), wp_unslash(
$_GET['key'] ) );

setcookie( $rp_cookie, $value, 0, $rp_path, COOKIE_DOMAIN, is_ssl(), true );


wp_safe_redirect( remove_query_arg( array( 'key', 'login' ) ) );
exit;
}

145
if ( isset( $_COOKIE[ $rp_cookie ] ) && 0 < strpos( $_COOKIE[ $rp_cookie ], ':' )
){
list( $rp_login, $rp_key ) = explode( ':', wp_unslash( $_COOKIE[ $rp_cookie ] ),
2 );
$user = check_password_reset_key( $rp_key, $rp_login );

if ( isset( $_POST['pass1'] ) && ! hash_equals( $rp_key, $_POST['rp_key'] ) ) {


$user = false;
}
} else {
$user = false;
}

if ( ! $user || is_wp_error( $user ) ) {


setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path,
COOKIE_DOMAIN, is_ssl(), true );
if ( $user && $user->get_error_code() === 'expired_key' )

wp_redirect( site_url( 'wp-


login.php?action=lostpassword&error=expiredkey' ) );
else
wp_redirect( site_url( 'wp-
login.php?action=lostpassword&error=invalidkey' ) );
exit;
}
$errors = new WP_Error();

if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] )


$errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );

do_action( 'validate_password_reset', $errors, $user );

146
if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty(
$_POST['pass1'] ) ) {
reset_password($user, $_POST['pass1']);
setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path,
COOKIE_DOMAIN, is_ssl(), true );

}
if ( isset( $_REQUEST['redirect_to'] ) ) {
$redirect_to = $_REQUEST['redirect_to'];
// Redirect to https if user wants ssl
if ( $secure_cookie && false !== strpos($redirect_to, 'wp-admin') )
$redirect_to = preg_replace('|^http://|', 'https://', $redirect_to);

} else {
$redirect_to = admin_url();
}
$reauth = empty($_REQUEST['reauth']) ? false : true;
$user = wp_signon( array(), $secure_cookie );
if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {

if ( headers_sent() ) {
/* translators: 1: Browser cookie documentation URL, 2: Support forums
URL */
$user = new WP_Error( 'test_cookie', sprintf( __(
'<strong>ERROR</strong>: Cookies are blocked due to unexpected output. For help,
please see <a href="%1$s">this documentation</a> or try the <a href="%2$s">support
forums</a>.' ),
__( 'https://codex.wordpress.org/Cookies' ), __(
'https://wordpress.org/support/' ) ) );
} elseif ( isset( $_POST['testcookie'] ) && empty( $_COOKIE[ TEST_COOKIE ]
)){
// If cookies are disabled we can't log in even with a valid user+pass

/* translators: 1: Browser cookie documentation URL */


147
$user = new WP_Error( 'test_cookie', sprintf( __(
'<strong>ERROR</strong>: Cookies are blocked or not supported by your browser. You
must <a href="%s">enable cookies</a> to use WordPress.' ),
__( 'https://codex.wordpress.org/Cookies' ) ) );
}
}

$requested_redirect_to = isset( $_REQUEST['redirect_to'] ) ?


$_REQUEST['redirect_to'] : '';
$redirect_to = apply_filters( 'login_redirect', $redirect_to, $requested_redirect_to,
$user );

if ( !is_wp_error($user) && !$reauth ) {


if ( $interim_login ) {

$message = '<p class="message">' . __('You have logged in successfully.')


. '</p>';
$interim_login = 'success';
login_header( '', $message ); ?>

</div>
<?php
/** This action is documented in wp-login.php */
do_action( 'login_footer' ); ?>
<?php if ( $customize_login ) : ?>
<script type="text/javascript">setTimeout( function(){ new
wp.customize.Messenger({ url: '<?php echo wp_customize_url(); ?>', channel: 'login'
}).send('login') }, 1000 );</script>

<?php endif; ?>


</body></html>
<?php exit;
}

148
if ( ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to ==
admin_url() ) ) {
// If the user doesn't belong to a blog, send them to user admin. If the user
can't edit posts, send them to their profile.
if ( is_multisite() && !get_active_blog_for_user($user->ID) &&
!is_super_admin( $user->ID ) )
$redirect_to = user_admin_url();
elseif ( is_multisite() && !$user->has_cap('read') )
$redirect_to = get_dashboard_url( $user->ID );
elseif ( !$user->has_cap('edit_posts') )
$redirect_to = $user->has_cap( 'read' ) ? admin_url( 'profile.php' ) :
home_url();
wp_redirect( $redirect_to );

exit();
}
wp_safe_redirect($redirect_to);
exit();
}
$errors = $user;
// Clear errors if loggedout is set.
if ( !empty($_GET['loggedout']) || $reauth )
$errors = new WP_Error();
if ( $interim_login ) {
if ( ! $errors->get_error_code() )
$errors->add( 'expired', __( 'Your session has expired. Please log in to
continue where you left off.' ), 'message' );
} else {
// Some parts of this script use the main login form to display a message

149
if ( isset($_GET['loggedout']) && true == $_GET['loggedout'] )
$errors->add('loggedout', __('You are now logged out.'), 'message');
elseif ( isset($_GET['registration']) && 'disabled' == $_GET['registration'] )
$errors->add('registerdisabled', __('User registration is currently not
allowed.'));
elseif ( isset($_GET['checkemail']) && 'confirm' == $_GET['checkemail'] )
$errors->add('confirm', __('Check your email for the confirmation link.'),
'message');
elseif ( isset($_GET['checkemail']) && 'newpass' == $_GET['checkemail'] )
$errors->add('newpass', __('Check your email for your new password.'),
'message');
elseif ( isset($_GET['checkemail']) && 'registered' == $_GET['checkemail'] )
$errors->add('registered', __('Registration complete. Please check your
email.'), 'message');

elseif ( strpos( $redirect_to, 'about.php?updated' ) )


$errors->add('updated', __( '<strong>You have successfully updated
WordPress!</strong> Please log back in to see what&#8217;s new.' ), 'message' );
}

$errors = apply_filters( 'wp_login_errors', $errors, $redirect_to );


// Clear any stale cookies.
if ( $reauth )
wp_clear_auth_cookie();
login_header(__('Log In'), '', $errors);
if ( isset($_POST['log']) )

$user_login = ( 'incorrect_password' == $errors->get_error_code() ||


'empty_password' == $errors->get_error_code() ) ? esc_attr(wp_unslash($_POST['log']))
: '';
$rememberme = ! empty( $_POST['rememberme'] );

if ( ! empty( $errors->errors ) ) {

150
$aria_describedby_error = ' aria-describedby="login_error"';
} else {
$aria_describedby_error = '';
}

?>
<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-
login.php', 'login_post' ) ); ?>" method="post">
<p>

<label for="user_login"><?php _e( 'Username or Email Address' ); ?><br />


<input type="text" name="log" id="user_login"<?php echo
$aria_describedby_error; ?> class="input" value="<?php echo esc_attr( $user_login );
?>" size="20" /></label>
</p>
<p>
<label for="user_pass"><?php _e( 'Password' ); ?><br />
<input type="password" name="pwd" id="user_pass"<?php echo
$aria_describedby_error; ?> class="input" value="" size="20" /></label>
</p>
<?php

do_action( 'login_form' );
?>
<p class="forgetmenot"><label for="rememberme"><input name="rememberme"
type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme );
?> /> <?php esc_html_e( 'Remember Me' ); ?></label></p>
<p class="submit">
<input type="submit" name="wp-submit" id="wp-submit" class="button button-
primary button-large" value="<?php esc_attr_e('Log In'); ?>" />
<?php if ( $interim_login ) { ?>
<input type="hidden" name="interim-login" value="1" />

151
<?php } else { ?>
<input type="hidden" name="redirect_to" value="<?php echo
esc_attr($redirect_to); ?>" />
<?php } ?>
<?php if ( $customize_login ) : ?>
<input type="hidden" name="customize-login" value="1" />
<?php endif; ?>
<input type="hidden" name="testcookie" value="1" />

</p>
</form>

<?php if ( ! $interim_login ) { ?>


<p id="nav">
<?php if ( ! isset( $_GET['checkemail'] ) || ! in_array( $_GET['checkemail'], array(
'confirm', 'newpass' ) ) ) :
if ( get_option( 'users_can_register' ) ) :
$registration_url = sprintf( '<a href="%s">%s</a>', esc_url( wp_registration_url()
), __( 'Register' ) );

/** This filter is documented in wp-includes/general-template.php */


echo apply_filters( 'register', $registration_url );

echo esc_html( $login_link_separator );


endif;
?>
<a href="<?php echo esc_url( wp_lostpassword_url() ); ?>"><?php _e( 'Lost your
password?' ); ?></a>
<?php endif; ?>
</p>

152
<?php } ?>

<script type="text/javascript">
function wp_attempt_focus(){

setTimeout( function(){ try{


<?php if ( $user_login ) { ?>
d = document.getElementById('user_pass');
d.value = '';
<?php } else { ?>
d = document.getElementById('user_login');

<?php if ( 'invalid_username' == $errors->get_error_code() ) { ?>


if( d.value != '' )
d.value = '';
<?php
}
}?>

d.focus();
d.select();
} catch(e){}
}, 200);
}

<?php
if ( apply_filters( 'enable_login_autofocus', true ) && ! $error ) { ?>
wp_attempt_focus();
<?php } ?>
if(typeof wpOnload=='function')wpOnload();

153
<?php if ( $interim_login ) { ?>
(function(){
try {
var i, links = document.getElementsByTagName('a');

for ( i in links ) {
if ( links[i].href )
links[i].target = '_blank';
}
} catch(e){}
}());

<?php } ?>
</script>

<?php
login_footer();

if ( $switched_locale ) {
restore_previous_locale();
}

break;
} // end action switch

154
9.1.7 MAIL

require(dirname(__FILE__) . '/wp-load.php');
/** This filter is documented in wp-admin/options.php */

if ( ! apply_filters( 'enable_post_by_email_configuration', true ) )


wp_die( __( 'This action has been disabled by the administrator.' ), 403 );
$mailserver_url = get_option( 'mailserver_url' );
if ( 'mail.example.com' === $mailserver_url || empty( $mailserver_url ) ) {
wp_die( __( 'This action has been disabled by the administrator.' ), 403 );
}

if ( !defined('WP_MAIL_INTERVAL') )
define('WP_MAIL_INTERVAL', 300); // 5 minutes
$last_checked = get_transient('mailserver_last_checked');
if ( $last_checked )
wp_die(__('Slow down cowboy, no need to check for new mails so often!'));

set_transient('mailserver_last_checked', true, WP_MAIL_INTERVAL);

$time_difference = get_option('gmt_offset') * HOUR_IN_SECONDS;

$phone_delim = '::';

$pop3 = new POP3();

if ( !$pop3->connect( get_option('mailserver_url'), get_option('mailserver_port') ) ||


!$pop3->user( get_option('mailserver_login') ) )
wp_die( esc_html( $pop3->ERROR ) );

155
$count = $pop3->pass( get_option('mailserver_pass') );

if( false === $count )


wp_die( esc_html( $pop3->ERROR ) );

if( 0 === $count ) {


$pop3->quit();
wp_die( __('There doesn&#8217;t seem to be any new mail.') );
}

for ( $i = 1; $i <= $count; $i++ ) {

$message = $pop3->get($i);

$bodysignal = false;
$boundary = '';

$charset = '';
$content = '';
$content_type = '';
$content_transfer_encoding = '';
$post_author = 1;
$author_found = false;

foreach ($message as $line) {


// Body signal.
if ( strlen($line) < 3 )
$bodysignal = true;
if ( $bodysignal ) {

156
$content .= $line;
} else {
if ( preg_match('/Content-Type: /i', $line) ) {
$content_type = trim($line);

$content_type = substr($content_type, 14, strlen($content_type) -


14);
$content_type = explode(';', $content_type);
if ( ! empty( $content_type[1] ) ) {

$charset = explode('=', $content_type[1]);


$charset = ( ! empty( $charset[1] ) ) ? trim($charset[1]) : '';
}
$content_type = $content_type[0];
}
if ( preg_match('/Content-Transfer-Encoding: /i', $line) ) {

$content_transfer_encoding = trim($line);
$content_transfer_encoding = substr($content_transfer_encoding,
27, strlen($content_transfer_encoding) - 27);
$content_transfer_encoding = explode(';',
$content_transfer_encoding);
$content_transfer_encoding = $content_transfer_encoding[0];
}
if ( ( $content_type == 'multipart/alternative' ) && ( false !== strpos($line,
'boundary="') ) && ( '' == $boundary ) ) {
$boundary = trim($line);
$boundary = explode('"', $boundary);
$boundary = $boundary[1];

}
if (preg_match('/Subject: /i', $line)) {
$subject = trim($line);

157
$subject = substr($subject, 9, strlen($subject) - 9);
// Captures any text in the subject before $phone_delim as the
subject
if ( function_exists('iconv_mime_decode') ) {
$subject = iconv_mime_decode($subject, 2,
get_option('blog_charset'));

} else {
$subject = wp_iso_descrambler($subject);
}
$subject = explode($phone_delim, $subject);
$subject = $subject[0];
}

if ( ! $author_found && preg_match( '/^(From|Reply-To): /', $line ) ) {


if ( preg_match('|[a-z0-9_.-]+@[a-z0-9_.-]+(?!.*<)|i', $line,
$matches) )
$author = $matches[0];

else
$author = trim($line);
$author = sanitize_email($author);
if ( is_email($author) ) {
/* translators: Post author email address */
echo '<p>' . sprintf(__('Author is %s'), $author) . '</p>';

$userdata = get_user_by('email', $author);


if ( ! empty( $userdata ) ) {
$post_author = $userdata->ID;
$author_found = true;
}
}

158
}

if ( preg_match( '/Date: /i', $line ) ) { // of the form '20 Mar 2002 20:32:37
+0100'
$ddate = str_replace( 'Date: ', '', trim( $line ) );
$ddate = preg_replace( '!\s*\(.+\)\s*$!', '', $ddate ); // remove
parenthesised timezone string if it exists, as this confuses strtotime
$ddate_U = strtotime( $ddate );
$post_date = gmdate( 'Y-m-d H:i:s', $ddate_U + $time_difference
);
$post_date_gmt = gmdate( 'Y-m-d H:i:s', $ddate_U );
}
}
}

// Set $post_status based on $author_found and on author's publish_posts capability

if ( $author_found ) {
$user = new WP_User($post_author);
$post_status = ( $user->has_cap('publish_posts') ) ? 'publish' : 'pending';
} else {
// Author not found in DB, set status to pending. Author already set to admin.
$post_status = 'pending';

$subject = trim($subject);

if ( $content_type == 'multipart/alternative' ) {
$content = explode('--'.$boundary, $content);

159
$content = $content[2];

// Match case-insensitive content-transfer-encoding.


if ( preg_match( '/Content-Transfer-Encoding: quoted-printable/i', $content,
$delim) ) {
$content = explode($delim[0], $content);
$content = $content[1];
}

$content = strip_tags($content,
'<img><p><br><i><b><u><em><strong><strike><font><span><div>');
}
$content = trim($content);

$content = apply_filters( 'wp_mail_original_content', $content );

if ( false !== stripos($content_transfer_encoding, "quoted-printable") ) {


$content = quoted_printable_decode($content);
}

if ( function_exists('iconv') && ! empty( $charset ) ) {


$content = iconv($charset, get_option('blog_charset'), $content);
}

// Captures any text in the body after $phone_delim as the body


$content = explode($phone_delim, $content);

$content = empty( $content[1] ) ? $content[0] : $content[1];

$content = trim($content);
$post_content = apply_filters( 'phone_content', $content );

160
$post_title = xmlrpc_getposttitle($content);

if ($post_title == '') $post_title = $subject;

$post_category = array(get_option('default_email_category'));

$post_data =
compact('post_content','post_title','post_date','post_date_gmt','post_author','post_category
', 'post_status');
$post_data = wp_slash($post_data);

$post_ID = wp_insert_post($post_data);
if ( is_wp_error( $post_ID ) )
echo "\n" . $post_ID->get_error_message();

// We couldn't post, for whatever reason. Better move forward to the next email.
if ( empty( $post_ID ) )

continue;
do_action( 'publish_phone', $post_ID );

echo "\n<p><strong>" . __( 'Author:' ) . '</strong> ' . esc_html( $post_author ) .


'</p>';
echo "\n<p><strong>" . __( 'Posted title:' ) . '</strong> ' . esc_html( $post_title ) .
'</p>';

if(!$pop3->delete($i)) {
echo '<p>' . sprintf(
/* translators: %s: POP3 error */

161
__( 'Oops: %s' ),
esc_html( $pop3->ERROR )
) . '</p>';
$pop3->reset();

exit;
} else {
echo '<p>' . sprintf(
/* translators: %s: the message ID */
__( 'Mission complete. Message %s deleted.' ),
'<strong>' . $i . '</strong>'

) . '</p>';
}

}
$pop3->quit();

162
CHAPTER N0 10.0
10.1 BIBLOGRAPHY
[1] en.wikipedia.org/wiki/Online_shopping_case_management

[2] Beginning PHP5 (wrox) ISBN 81-265-0539-7

[3] Database System Concept By Silberschartz, koth, Sundarshan ISBN 007-124476-

[4] www.w3schols.com

[5] http://www.siteground.com/tutorials/php-mysql/zend_optimizer.htm

[6] http://php.net/manual/en/tutorial.php

[7] https://www.mysql.com/

163
CHAPTER NO 11.0

11.1 FUTURE EXPECTATION ABOUT THE E-COMMERCE:-

The Retail world is undergoing an extreme change, most of the influencing features are
technology development and New trends. It‘s not only about technology improvement, A
successful retailer must also take into consideration the new business model affecting
business activities, consumer behavior, as well as changing consumer expectations. This
article would really help every successful retailer to gain magnificent knowledge as well
as changing consumer Expectation pattern, with relevant implications of these
evolutionary changes of both merchants and users of their service.

11.1.1 The Internet is crushing department stores:-

In earlier days, people used to visit Retail outlet or departmental stores when they are in
need of different products at the same time in one place. This practice is highly
decreasing with Recent generations, Since the world speeds up every day, young
generation always looks forward to reducing time consumption as well as to reduce
energy consumption. It‘s obvious that in current days the internet can offer millions of
products at a click. Hence in the next few decades, people who are going to departmental
stores might seem to be an old-fashioned hobby rather than being a part of everyday life.
Online retail will Lessen the need for offline stores

In present days, it is the must for all Retailers to have an online presence. Indeed, even
today it is difficult to locate a fruitful best retail outlet without an online nearness. It‘s
Estimated in up and coming years individuals would question your reality on the off
chance that you don‘t have an online gateway, the online retail is relied upon to win
clients considering. Although, most of the offline stores are offering most of the options
and items online for customers. Building an online gateway is a lot less demanding, less
complex, progressively advantageous for the two purchasers and vendors. In Upcoming
decades are in all probability expected to be Online Era.

164
11.1.2 Mobile is the Internet:-

Mobile Technology makes the web increasingly sensible and shortsighted, while
everything is getting a quicker and quicker everyday life except gadgets are getting littler,
lighter just as compact. Mobile Phone is one of the Exclusionary gadgets with whom
everybody conveys, look through the web, just as to do shopping. In these ongoing ages,
everybody gets shocked on the off chance that anything recently propelled without a
versatile application. In forthcoming years, everyone will change to use notebooks and
computers to do some serious technical tasks. In 2016 over $100 billion sales were made
on mobile and desktop devices only and these figures are expected to continue in growing
successfully with Recent Mobile Technology.

11.1.3 Social media is a key driver E-commerce:-

0Advertising is one of the fantastic instruments to make mindfulness among a wide group
of onlookers, when you publicize utilizing Social Media it makes a huge measure of
traffic to your gateway just as to pronounce your reality. In Current days, individuals
needed to find out about the items, item Reviews, dependability just as thoughts and
feelings. Henceforth Social Media is the major device and the key driver to speak with
brands and clients, it takes brands and client closer to one another. It is prudent to
adequately build social sharing and online nearness to change over more guests to
important clients and to take a respectable offer of the online business later on.

11.1.4 E-commerce while messaging:-

E-commerce while informing is one of the amazing apparatuses to drive compelling deals
like individuals inclining toward brands to progressively open and act increasingly
human, informing is one of the crucial E-commerce tool. A Retailer can send a message
personally about sales, special offers, some personal set of items based on customer
preferences and older purchase. This is one of the active ways to be in trend is to apply
this tool into your business and makes it as personal as possible.

165
11.1.5 VR, AR and Wearable devices:-

Virtual Reality, Augmented Reality, and wearable devices are no more science fiction,
finally, they have turned into a typical reality. With the assistance of virtual reality and
wearable devices, You will be able to know much more about what your customers want
and we will have an opportunity to provide customers with the best shopping
Experiences.

11.1.6 Online stores have to fit in:-

With the quick and dramatic changes taking place in the marketplace, business owners
have to keep an eye with the changes and address new customer needs and mostly with
cross-platform usability, easy navigation, mobile accessibility, and instinctive interfaces.
There are many extensions available in the market some are the best solutions that
enables handy and quick optimization of the online shops. In the Current Modern highly
competitive market, where everyone is buying online, the best retailer will be the winner,
who makes the site‘s use comfortable, user-friendly and fun.

Conclusion :-

From the above discussed trends in the buying experiences, the irreversible changes are
already proved, It has changed the way in which people communicate, interact, search for
products to buy, as well as to conduct shopping. A strong retailer and an effective
business should take consideration from all the above-stated points and discussed figures
as well as commercial appeals. Thus in the 21st century, it‘s a very hard battle to conduct
effective business activities. Hence the business that adapts the changes and finds an
appeal to new customers are doomed to commercial success and great grand revenues.

166
167

You might also like