Foros ZackYFileS

Foros ZackYFileS (http://foros.zackyfiles.com/index.php)
-   ARTES GRÁFICAS - Diseño, Firmas, WEBS. (http://foros.zackyfiles.com/forumdisplay.php?f=238)
-   -   carrito de compra (http://foros.zackyfiles.com/showthread.php?t=408702)

KEKY 22/02/2006 01:11

carrito de compra
 
tengo un catalogo y quiero que cuando tike el producto vaya al carro de la compra y si le doy aotro que lo sume algien me podria explicar como puedo hacer esto lo agradeceria mucho salu2

Coke 24/02/2006 01:24

pon la direccion de la web, para ver como es y que se puede hacer.

Coke.

Voyager 24/02/2006 01:47

Aqui tienes una bastante grafica y queda espectacular

http://demo.script.aculo.us/shop

Arrastra los iconos a la "cesta" y veras como queda :)

Código HTML:

# view
<div style="margin-bottom:20px;height:120px;">
<% for product in @products %>
  <%= image_tag "/images/products/product#{product.id}",
        :id =>
"product_#{product.id}",
        :alt => product.title,
        :class => "products"  %>
  <%= draggable_element "product_#{product.id}", :revert => true %>
<% end %>
</div>

<h2>Your cart:</h2>

<div id="cart" class="cart" style="clear:left; height:132px;margin-top:10px;">
  <div id="wastebin">
    Drop items here to remove them from the cart.
  </div>
  <div id="items">
    <%= render :partial => "cart" %>
  </div>
  <div style="clear:both;"></div>
</div>

<div style="height:40px;padding-top:10px;">
<p id="indicator" style="display:none;margin-top:0px;">
  <%= image_tag "indicator.gif" %> Updating cart...
</p>
</div>

<%= drop_receiving_element "cart",
      :update =>
"items", :url => { :action => "add" },
      :accept => "products", :hoverclass => "cart-active",
      :loading => "Element.show('indicator')",
      :complete => "Element.hide('indicator')" %>
     
<%= drop_receiving_element "wastebin",
      :update =>
"items", :url => { :action => "remove" },
      :accept => "cart-items", :hoverclass => "wastebin-active",
      :before => "Element.hide(element)",
      :loading => "Element.show('indicator')",
      :complete => "Element.hide('indicator')" %>
   
# controller
class ShopController < ApplicationController
 
  def index
    session[:cart] ||= {}
    @products = Product.find(:all)
  end
 
  def add
    product_id = params[:id].split("_")[1]
   
    session[:cart][product_id] =
      session[:cart].include?(product_id) ? 
      session[:cart][product_id]+1 : 1
 
    render :partial =>
'cart'
  end
 
  def remove
    product_id = params[:id].split("_")[1]
   
    if session[:cart][product_id] > 1
      session[:cart][product_id] = session[:cart][product_id]-1
    else
      session[:cart].delete(product_id)
    end
   
    render :partial => 'cart'
  end
 
end


# _cart.rhtml partial
<% session[:cart].each do |product,quantity| %>
<div>
  <% quantity.times do |i| %>
    <%= image_tag "/images/products/product#{product}",
          :class =>
"cart-items",
          :id => "item_#{product}_#{i}",
          :style => "position:relative;" %>
    <%= draggable_element "item_#{product}_#{i}", :revert => true %>
  <% end %>
  <span class="title">
    <%= Product.find(product).title + " (#{quantity})" %>
  </span>
</div>
<% end %>
<%= "Here's your shopping cart." if session[:cart].empty? %>

El unico requisito es que tu servidor soporte AJAX :)

Masta90 02/04/2006 19:29

¿podría integrarse esto en Oscommerce? Voy a crear mi propia tienda online y queda genial.
Gracias

Voyager 04/04/2006 04:05

Si OSCommerce te permite subir scripts PHP si

Bajate el fichero de aqui

Lo descomprimes en una carpeta en tu servidor

Y luego la parte "mas complicada" Metes esto en el mysql de tu server

Código:

#----------------------------
# Table structure for items_ite
#----------------------------
CREATE TABLE `items_ite` (
  `id_ite` int(11) NOT NULL auto_increment,
  `id_pro` int(11) default NULL,
  `session_ite` varchar(50) default NULL,
  `date_ite` timestamp NULL default NULL on update CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id_ite`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#----------------------------
# Records for table items_ite
#----------------------------


insert  into items_ite values
(112, 3, 'eeba099ff25719e60d7224077ca61184', null),
(113, 2, 'eeba099ff25719e60d7224077ca61184', null),
(114, 1, 'eeba099ff25719e60d7224077ca61184', null),
(115, 1, 'eeba099ff25719e60d7224077ca61184', null),
(116, 2, 'eeba099ff25719e60d7224077ca61184', null),
(117, 2, 'eeba099ff25719e60d7224077ca61184', null),
(118, 3, 'eeba099ff25719e60d7224077ca61184', null),
(119, 3, 'eeba099ff25719e60d7224077ca61184', null),
(120, 3, 'eeba099ff25719e60d7224077ca61184', null);

#----------------------------
# Table structure for products_pro
#----------------------------
CREATE TABLE `products_pro` (
  `id_pro` int(11) NOT NULL auto_increment,
  `name_pro` varchar(100) default NULL,
  `image_pro` varchar(100) default NULL,
  PRIMARY KEY  (`id_pro`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
#----------------------------
# Records for table products_pro
#----------------------------


insert  into products_pro values
(1, 'low impact', '/images/icons/low_impact.gif'),
(2, 'herbs', '/images/icons/herbs.gif'),
(3, 'yoga', '/images/icons/yoga.jpg');


Te deberia quedar algo como esto



SI no te sale por aqui tamos

Masta90 05/04/2006 00:57

Muchas gracias, mañana mismo intento implementarlo, ya os contaré que tal.
Un saludo

chukelo 01/05/2006 13:40

Me he quedado con las ganas de ver como te ha quedado. A ver si puedes poner un link.

Yo estoy pensando en aplicarselo a mi web pero de momento me veo un poco pez, ya que no entiendo que tiene que ver esas tablas que hay que crear para relacionar esos iconos con mis productos de mi base de datos.


La franja horaria es GMT +2. Ahora son las 08:09.

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate