Sök…


Introduktion

Vi kan använda CIs kundvagnsbibliotek när vi bygger en e-handelswebbplats. vi kan konfigurera lägg till i kundvagnen, uppdatera vagnar, ta bort vagnar och till och med rensa vagnens funktionaliteter med hjälp av detta bibliotek.

Från CodeIgniter Doc: Cart Cart Class tillåter att objekt läggs till i en session som förblir aktiv medan en användare surfar på din webbplats. Dessa artiklar kan hämtas och visas i ett standardformat "kundvagn", så att användaren kan uppdatera mängden eller ta bort objekt från vagnen.

Lägga till artiklar i kundvagnen

Du bör skapa funktioner i en styrenhet som infoga, uppdatera, radera och rensa vagn etc. t.ex.: för att infoga en ny artikel i vagnen, skriv nedan kod som accepterar värde.

$cartItem = array(
'id'      => 'MOTOG5',
'qty'     => 5,
'price'   => 100.99,
'name'    => 'Motorola Moto G5 - 16 GB',
'options' => array(
                'ram' => '3GB',
                'Color' => 'Fine Gold'
             )
);

Och skapa funktioner i modell för vagnsuppgifter som infoga, uppdatera, ta bort, rensa etc.

t.ex. för att sätta in artiklar i kundvagnen

$this->cart->insert($cartItem);

Metoden insert () returnerar $ rowid om du lyckas infoga ett enda objekt. så du kan kontrollera att objektet har infogats eller inte och visa relaterat meddelande till användaren.

och du kan infoga flera objekt som det här

$data = array(
    array(
            'id'      => 'sku_123ABC',
            'qty'     => 1,
            'price'   => 39.95,
            'name'    => 'T-Shirt',
            'options' => array('Size' => 'L', 'Color' => 'Red')
    ),
    array(
            'id'      => 'sku_567ZYX',
            'qty'     => 1,
            'price'   => 9.95,
            'name'    => 'Coffee Mug'
    ),
    array(
            'id'      => 'sku_965QRS',
            'qty'     => 1,
            'price'   => 29.95,
            'name'    => 'Shot Glass'
    )
);

$this->cart->insert($data);

Grundelement i CI kundvagn

Eftersom vi kan lägga till flera element i Cart array och sedan lägga till det i vagnssessionen, men det finns fyra grundelement som Cart Class kräver för att lägga till data framgångsrikt i vagnssessionen.

  1. id (sträng)
  2. antal (antal)
  3. pris (antal, decimal)
  4. namn (String)

Och om du vill lägga till fler alternativ angående produkt kan du använda det femte elementet som är "alternativ". Du kan ställa in en rad alternativ i detta element.

Det kommer att se ut så här:

$cartItem = array(
    'id'      => 'MOTOG5',
    'qty'     => 5,
    'price'   => 100.99,
    'name'    => 'Motorola Moto G5 - 16 GB',
    'options' => array(
                    'ram' => '3GB',
                    'Color' => 'Fine Gold'
                 )
);

Visa varukorgen

Du kan visa vagnar med slinga genom vagnen eller så kan du visa enstaka artikel från vagnen.

$cartContents = $this->cart->contents();

Detta kommer att returnera en rad vagnsartiklar så att du kan gå igenom den här matrisen med hjälp av foreach-loop.

 foreach ($cartContents as $items){
     echo "ID : ". $items["id"] . "<br>";
     echo "Name : ". $items["name"] . "<br>";
     echo "Quantity : ". $items["qty"] . "<br>";
     echo "Price : ". $items["price"] . "<br>";
  }

Du kan formatera dessa data som tabellcell eller som div och sedan visa i vyn.

Uppdatera varukorgen

Rowid: Rad-ID är en unik identifierare som genereras av vagnskoden när ett objekt läggs till i vagnen. Anledningen till att ett unikt ID skapas är så att identiska produkter med olika alternativ kan hanteras av vagnen.

Varje artikel i vagnen har ett roddelement och genom rodid kan du uppdatera varukorgen.

$updateItem = array(
    'rowid' => 'b99ccdf16028f015540f341130b6d8ec',
    'qty'   => 3
);

och sedan under kod

$this->cart->update($data);

Ta bort varukorgen

Genom att använda radidelement kan du radera ett objekt från vagnen. du måste bara ställa in artikelns antal till 0

$deleteItem = array(
    'rowid' => 'b99ccdf16028f015540f341130b6d8ec',
    'qty'   => 0
);

$this->cart->update($data);

detta kommer att radera objektet med denna radid.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow