Файл: Разработка мебельного интернет-магазина (Миссия компании).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 16.02.2024

Просмотров: 169

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

4. Очевидно также, что необходимо будет использовать все возможные виды оплаты.

5. Товар в магазине должен быть оригинальным, не повторяющимся в других магазинах – это справедливо в большей мере для малых и средних магазинов.

6. Увеличение скорости и качества доставки также станет необходимым элементом.

7. В будущем возможно подключение функций по созданию первичных документов, таких как, счета, накладные, счета-фактуры и т.п., что позволит сделать работу Интернет-магазина еще более автоматизированной.

8. Кроме того, возможно также и развитие по пути расширения каталога, увеличению количества товарных позиций и так далее.

Список литературы

  1. Алексунин В.А., Родигина В.В. Электронная коммерция и маркетинг в Интернет.- Учебное пособие. - М.: «Дашков и К0», 2005.
  2. Быков В.А. Электронный бизнес и безопасность /.-М.:Радио и связь,2000.-200 с.:ил.
  3. Завалеев В. Курс ЦИТ «Internet-технологии в проектах с пластиковыми карточками», Центр Информационных Технологий ,2007.
  4. Информатика: Учебник для вузов (Гриф МО РФ) / Острейковский В.А., М: Высшая школа, 2010.- 511 с.
  5. Информатика: Учебник для вузов / Козырев А.А.- СПб: издательство Михайлова В.А., 2010.- 511 с.
  6. Кавторева Я. Интернет магазин. Организация, налогообложение, учет. – Фактор, 2009 – 119 с.
  7. Киселев Ю.Н. Электронная коммерция: практическое руководство.- СПб: ООО «ДиаСофтЮП», 2010.
  8. Маршавин Р.А., Ляпунов С.И. Глобальный бизнес и информационные технологии, Учебное пособие. М.:2009 г.
  9. Орлов Л. Как создать электронный магазин в Интернет, 2_е изд., М.: Бук.пресс, 2009. - 384 с.
  10. Эффективная работа с СУБД А. Рубен, А. Горев, С. Макшарипов СПб.: Питер, 2009. – 822 с.
  11. Алексеев А. Будущее электронной коммерции //Инфобизнес,2009. № 48
  12. Ашманов И. С. Национальные особенности поисковых систем // Журнал «Компьютер в школе», № 01, 2009 год // Издательство «Открытые системы»
  13. Ездаков А. Российские электронные витрины // Сети. 2008. № 9
  14. Малевский П., Чернышев А., Дубина А. Системы электронной коммерции для операторов связи // ПаРаДис. 2009. № 1
  15. Создание и поддержка Интернет-магазина на базе WWWB Сервера Журнал «Главбух», 2009. №4
  16. Ивашов А. Электронные магазины: от сельпо до супермаркета - http:// archives. maillist.ru/ 72200/ 181108. html
  17. Малышева Н. Виртуальные покупки Электронная версия еженедельника «Аргументы и факты» - http://www.aif.ru
  18. Методика создания Интернет-магазина - http://www.delna.ru/ page/ shop. html
  19. Сайт Fodex - Этапы разработки Интернет-магазина - http://www.fodex.ru

Приложение

<?php

if( ! defined( '_VALID_MOS' ) && ! defined( '_JEXEC' ) )

die( 'Direct Access to ' . basename( __FILE__ ) . ' is not allowed.' ) ;

/**

*

* @version $Id: ps_product_attribute.php 1879 2009-09-11 08:20:46Z soeren_nb $

* @package VirtueMart

* @subpackage classes

* @copyright Copyright (C) 2004-2009 soeren - All rights reserved.

* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php

* VirtueMart is free software. This version may have been modified pursuant

* to the GNU General Public License, and as distributed it includes or

* is derivative of works licensed under the GNU General Public License or

* other free or open source software licenses.

* See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details.

*

* http://virtuemart.net

*/

/**

* The class is is used to manage the product attributes.

*

*/

class vm_ps_product_attribute {

/**

* Validates that all variables for adding, updating an attribute

* are correct

*

* @param array $d

* @return boolean True when successful, false when not

*/

function validate( &$d ) {

global $vm

Logger, $VM_LANG;

$valid = true ;

if( $d["attribute_name"] == "" ) {

$vmLogger->err( $VM_LANG->_( 'VM_PRODUCT_ATTRIBUTE_ERR_ATTRNAME' ) ) ;

$valid = false ;

} elseif( $d["old_attribute_name"] != $d["attribute_name"] ) {

$db = new ps_DB( ) ;

$q = "SELECT attribute_name FROM #__{vm}_product_attribute_sku " ;

$q .= "WHERE attribute_name = '" . $db->getEscaped( $d["attribute_name"] ) . "'" ;

$q .= "AND product_id = '" . (int)$d["product_id"] . "'" ;

$db->query( $q ) ;

if( $db->next_record() ) {

$vmLogger->err( $VM_LANG->_( 'VM_PRODUCT_ATTRIBUTE_ERR_ATTRUNIQ' ) ) ;

$valid = false ;

}

}

return $valid ;

}

/**

* Validates all variables for deleting an attribute

*

* @param array $d

* @return boolean True when successful, false when not

*/

function validate_delete( &$d ) {

global $vmLogger, $VM_LANG ;

require_once (CLASSPATH . 'ps_product.php') ;

$ps_product = new ps_product( ) ;

$db = new ps_DB( ) ;

$q = 'SELECT product_id FROM #__{vm}_product_attribute_sku WHERE product_id = ' . (int)$d["product_id"] ;

$db->query( $q ) ;

if( $db->num_rows() == 1 && $ps_product->parent_has_children( $d["product_id"] ) ) {

$vmLogger->err( $VM_LANG->_( 'VM_PRODUCT_ATTRIBUTE_ERR_DELITEMS' ) ) ;

return false ;

}

return true ;

}

/**

* Adds an attribute record

*

* @param array $d

* @return boolean True when successful, false when not

*/

function add( &$d ) {

global $VM_LANG ;

if( ! $this->validate( $d ) ) {

return false ;

}

$db = new ps_DB( ) ;

$fields = array( 'product_id' => $d["product_id"] , 'attribute_name' => $d["attribute_name"] , 'attribute_list' => $d["attribute_list"] ) ;

$db->buildQuery( 'INSERT', '#__{vm}_product_attribute_sku', $fields ) ;

if( $db->query() === false ) {

$GLOBALS['vmLogger']->err( $VM_LANG->_( 'VM_PRODUCT_ATTRIBUTE_ERR_SAVING' ) ) ;

return false ;

}

/** Insert new Attribute Name into child table **/

$ps_product = new ps_product( ) ;

$child_pid = $ps_product->get_child_product_ids( $d["product_id"] ) ;

for( $i = 0 ; $i < count( $child_pid ) ; $i ++ ) {

$fields = array( 'product_id' => $child_pid[$i] , 'attribute_name' => $d["attribute_name"] ) ;

$db->buildQuery( 'INSERT', '#__{vm}_product_attribute', $fields ) ;

$db->query() ;

}

$GLOBALS['vmLogger']->info( $VM_LANG->_( 'VM_PRODUCT_ATTRIBUTE_SAVED' ) ) ;

return true ;

}

/**

* Updates an attribute record

*

* @param array $d

* @return boolean True when successful, false when not

*/

function update( &$d ) {

global $VM_LANG ;


if( ! $this->validate( $d ) ) {

return false ;

}

$db = new ps_DB( ) ;

$fields = array( 'attribute_name' => $d["attribute_name"] , 'attribute_list' => $d["attribute_list"] ) ;

$db->buildQuery( 'UPDATE', '#__{vm}_product_attribute_sku', $fields, "WHERE product_id='" . (int)$d["product_id"] . "' AND attribute_name='" . $db->getEscaped( $d["old_attribute_name"] ) . "'" ) ;

if( $db->query() === false ) {

$GLOBALS['vmLogger']->err( $VM_LANG->_( 'VM_PRODUCT_ATTRIBUTE_ERR_UPDATING' ) ) ;

return false ;

}

if( $d["old_attribute_name"] != $d["attribute_name"] ) {

$ps_product = new ps_product( ) ;

$child_pid = $ps_product->get_child_product_ids( $d["product_id"] ) ;

for( $i = 0 ; $i < count( $child_pid ) ; $i ++ ) {

$fields = array( 'attribute_name' => $d["attribute_name"] ) ;

$db->buildQuery( 'UPDATE', '#__{vm}_product_attribute', $fields, "WHERE product_id='" . $child_pid[$i] . "' AND attribute_name='" . $db->getEscaped( $d["old_attribute_name"] ) . "' " ) ;

$db->query() ;

}

}

$GLOBALS['vmLogger']->info( $VM_LANG->_( 'VM_PRODUCT_ATTRIBUTE_UPDATED' ) ) ;

return true ;

}

/**

* Controller for Deleting Records.

*/

function delete( &$d ) {

$record_id = $d["attribute_name"] ;

if( is_array( $record_id ) ) {

foreach( $record_id as $record ) {

if( ! $this->delete_record( $record, $d ) )

return false ;

}

return true ;

} else {

return $this->delete_record( $record_id, $d ) ;

}

}

/**

* Deletes one Record.

*/

function delete_record( $record_id, &$d ) {

global $db ;

if( ! $this->validate_delete( $d ) ) {

return false ;

}

$q = "DELETE FROM #__{vm}_product_attribute_sku " ;

$q .= 'WHERE product_id = ' . (int)$d["product_id"] . ' ' ;

$q .= "AND attribute_name = '" . $db->getEscaped( $record_id ) . "'" ;

$db->query( $q ) ;

$ps_product = new ps_product( ) ;

$child_pid = $ps_product->get_child_product_ids( $d["product_id"] ) ;

for( $i = 0 ; $i < count( $child_pid ) ; $i ++ ) {

$q = "DELETE FROM #__{vm}_product_attribute " ;

$q .= "WHERE product_id = '$child_pid[$i]' " ;

$q .= "AND attribute_name = '" . $db->getEscaped( $record_id ) . "'" ;

$db->query( $q ) ;

}

return True ;

}

/**

* Lists all child/sister

products of the given product

*

* @param int $product_id

* @return string HTML code with Items, attributes & price

*/

function list_attribute( $product_id, $extra_ids = null ) {

// The default listing method

$product_list = "N" ;

$display_use_parent = 'N';

$child_options = ps_product::get_child_options( $product_id ) ;

if( ! empty( $child_options ) ) {

extract( $child_options ) ;

}

$quantity_options = ps_product::get_quantity_options( $product_id ) ;

if( ! empty( $quantity_options['quantity_box'] ) ) {

$display_type = $quantity_options['quantity_box'] ;

}

$child_option_ids = ps_product::get_field( $product_id, 'child_option_ids' ) ;

if( $child_option_ids != '' && $product_list == "N" ) {

$product_list = "Y" ;

}

if( $extra_ids ) {

$child_option_ids .= $child_option_ids ? "," . $extra_ids : $extra_ids ;

}

if( empty( $class_suffix ) ) {

$class_suffix = "" ;

}

switch( $product_list) {

case "Y" :

return $this->list_attribute_list( $product_id, $display_use_parent, $product_list_child, $display_type, $class_suffix, $child_option_ids, $dw, $aw, $display_header, $product_list_type, $product_list ) ;

break ;

case "YM" :

return $this->list_attribute_list( $product_id, $display_use_parent, $product_list_child, $display_type, $class_suffix, $child_option_ids, $dw, $aw, $display_header, $product_list_type, $product_list ) ;

break ;

case "N" :

default :

return $this->list_attribute_drop( $product_id, $class_suffix ) ;

break ;

}

}


/**

* Lists all child/sister products of the given product

*

* @param int $product_id

* @return string HTML code with Items, attributes & price

*/

function list_attribute_drop( $product_id, $cls_suffix ) {

global $VM_LANG, $CURRENCY_DISPLAY, $mm_action_url, $sess ;

$db = new ps_DB( ) ;

$cur_product_id = $_REQUEST['product_id'];

// $q="select product_id from #__{vm}_product where product_parent_id=$cur_product_id";

$q = "SELECT p.product_id,p.product_name FROM #__{vm}_product p

INNER JOIN #__{vm}_product_type_1 p1 on p1.product_id=p.product_id

WHERE p.product_parent_id='$cur_product_id' AND p.product_publish='Y'";

// AND p1.door_type!='$cur_door_type'

// and p1.door_color='$cur_door_color'

// " ;

$db->setQuery($q);

$db->query();

$db->next_record();

$new_id = $db->f( "product_id" );

if($new_id){

$product_parent_id=$cur_product_id;

$product_id=$new_id;

$_REQUEST['product_id']=$new_id;

$cur_product_id=$new_id;

}else{ // parent все же лучше уже здесь узнать:

$q="select product_parent_id from #__{vm}_product where product_id=$cur_product_id";

$db->setQuery($q);

$db->query();

$db->next_record();

$product_parent_id = $db->f( "product_parent_id" );

}

// echo">>>>>>>>>>>>>>>>>>>>>$cur_product_id - $new_id";

//if($product_id ==19)$product_id =23;

require_once (CLASSPATH . 'ps_product.php') ;

$ps_product = new ps_product( ) ;

$Itemid = $sess->getShopItemid() ;

$category_id = vmGet( $_REQUEST, 'category_id', "" ) ;

$db_sku = new ps_DB( ) ;

$db_item = new ps_DB( ) ;

$tpl = new $GLOBALS['VM_THEMECLASS']( ) ;

$tpl->set( "cls_suffix", $cls_suffix ) ;

$tpl->set( "product_id", $product_id ) ;

// Set Advanced Attributes

$tpl->set( "advanced_attribute", $this->list_advanced_attribute( $product_id, $db->f( "product_id" ) ) ) ;

$tpl->set( "custom_attribute", $this->list_custom_attribute( $product_id, $db->f( "product_id" ) ) ) ;

// Get list of children

$q1 = "";

if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") {

$q1 = " AND product_in_stock > 0 ";

}

// $q = "SELECT product_id,product_name FROM #__{vm}_product WHERE product_parent_id='$product_id' AND product_publish='Y'" ;

//tra

veller:

$q="select door_color, door_type from #__{vm}_product_type_1 where product_id=$cur_product_id";

$db->setQuery($q);

$db->query();

$db->next_record();

$cur_door_type = $db->f( "door_type" );

$cur_door_color = $db->f( "door_color" );

//echo">>>>>>>>>>>>>>>>>> $product_parent_id - >>>$cur_product_id - $cur_door_type - $cur_door_color";

$q = "SELECT p.product_id,p.product_name FROM #__{vm}_product p

INNER JOIN #__{vm}_product_type_1 p1 on p1.product_id=p.product_id

WHERE p.product_parent_id='$product_parent_id' AND p.product_publish='Y'

AND p1.door_type!='$cur_door_type'

and p1.door_color='$cur_door_color'

" ;

$db->setQuery($q);

$db->query();

$db->next_record();

$alt_id=$d

}

}

$addhtml.="";

$q = "SELECT p.product_id,p.product_name FROM #__{vm}_product p

INNER JOIN #__{vm}_product_type_1 p1 on p1.product_id=p.product_id

WHERE p.product_parent_id='$product_parent_id' AND p.product_publish='Y'

AND p1.door_type='$cur_door_type'" ;

$db->query($q.$q1);

if( $db->num_rows() < 1 ) {

// Must be a child then

$child_id = $product_id;

// Try to Get list of sisters & brothers

$product_parent_id = $ps_product->get_field( $product_id, 'product_parent_id' ) ;

if( $product_parent_id != "0" ) {

$product_id = $product_parent_id;

// $q = "SELECT product_id,product_name FROM #__{vm}_product WHERE product_parent_id=$product_id AND product_parent_id<>0 AND product_publish='Y'" ;

//traveller:

$q = "SELECT p.product_id,p.product_name FROM #__{vm}_product p WHERE p.product_parent_id='$product


// Start row for this child

$html .= "<option value=\"" . $db->f( "product_id" ) . "\" $selected>" ;

///$html .= $db->f( "product_name" ) ." - " ;

$q="select door_color, door_type from #__{vm}_product_type_1 where product_id=".$db->f( "product_id" );

$db_sku->setQuery($q);

$db_sku->query();

$db_sku->next_record();

$html .=$db_sku->f( "door_color" ).", ".$db_sku->f( "door_type" );

/*

// For each child get attribute values by looping through attribute list

$q = "SELECT product_id, attribute_name FROM #__{vm}_product_attribute_sku " ;

$q .= "WHERE product_id='$product_id' ORDER BY attribute_list ASC" ;

$db_sku->setQuery( $q ) ;

$db_sku->query() ;

while( $db_sku->next_record() ) {

$q = "SELECT attribute_name, attribute_value, product_id " ;

$q .= "FROM #__{vm}_product_attribute WHERE " ;

$q .= "product_id='" . $db->f( "product_id" ) . "' AND " ;

$q .= "attribute_name='" . $db_sku->f( "attribute_name" ) . "'" ;

$db_item->setQuery( $q ) ;

$db_item->query() ;

while( $db_item->next_record() ) {

//$html .= $db_item->f( "attribute_name" ) . " " ;

$html .= $db_item->f( "attribute_value" ) ;

if( ! $db_sku->is_last_record() )

$html .= '; ' ;

}

}

*/

///////$html.="--".$db->f( "product_id" );

// Attributes for this item are done.

// Now get item price

if( $_SESSION['auth']['show_prices'] && _SHOW_PRICES ) {

$price = $ps_product->get_adjusted_attribute_price( $db->f( "product_id" ) ) ;

$price["product_price"] = $GLOBALS['CURRENCY']->convert( $price["product_price"], $price["product_currency"] ) ;

if( $_SESSION["auth"]["

show_price_including_tax"] == 1 ) {

$tax_rate = 1 + $ps_product->get_product_taxrate( $db->f( "product_id" ) ) ;

$price['product_price'] *= $tax_rate ;

}

$html .= ' - ' . $CURRENCY_DISPLAY->getFullValue( $price["product_price"] ) ;

}

$html .= "</option>\n" ;

}

$html .= "</select>\n" ;

$tpl->set( "drop_down", $html ) ;

} else {

$html = "<input type=\"hidden\" name=\"product_id\" value=\"$product_id\" />\n" ;

$html .= "<input type=\"hidden\" name=\"prod_id[]\" value=\"$product_id\" />\n" ;

$tpl->set( "drop_down", $html ) ;

}

$html = $tpl->fetch( 'product_details/includes/addtocart_drop.tpl.php' ) ;

return array( $html , "drop" ) ;

}

/**

* Lists all child/sister products of the given product

*

* @param int $product_id

* @return string HTML code with Items, attributes & price

*/

function list_attribute_drop_multi( $product_id, $cls_suffix ) {

global $VM_LANG, $CURRENCY_DISPLAY, $mm

_action_url, $sess ;

require_once (CLASSPATH . 'ps_product.php') ;

$ps_product = new ps_product( ) ;

$Itemid = $sess->getShopItemid() ;

$category_id = vmGet( $_REQUEST, 'category_id', "" ) ;

$db = new ps_DB( ) ;

$db_sku = new ps_DB( ) ;

$db_item = new ps_DB( ) ;

$tpl = new $GLOBALS['VM_THEMECLASS']( ) ;

$tpl->set( "cls_suffix", $cls_suffix ) ;

$tpl->set( "product_id", $product_id ) ;

// Set Advanced Attributes

$tpl->set( "advanced_attribute", $this->list_advanced_attribute( $product_id, $db->f( "product_id" ) ) ) ;

$tpl->set( "custom_attribute", $this->list_custom_attribute( $product_id, $db->f( "product_id" ) ) ) ;

// Get list of children

$q = "SELECT product_id,product_name FROM #__{vm}_product WHERE product_parent_id='$product_id' AND product_publish='Y'" ;

$db->setQuery( $q ) ;

$db->query() ;

if( $db->num_rows() < 1 ) {

// Try to Get list of sisters & brothers

$q = "SELECT product_parent_id FROM #__{vm}_product WHERE product_id='$product_id'" ;

$db->setQuery( $q )

Образовательная автономная некоммерческая организация

высшего образования