Toon posts:

[PHP/MySQL/+] Shops en aantallen producten.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Volgens mij hoort het volgende in /14 dus daar gaan we dan :)

Ik ben nu reeds ruim 1,5 jaar bezig met PHP / MySQL en heb nu een stuk of 3 a 4 shops gemaakt, nu kwam ik op het probleem dat je bijvoorbeeld een artikel zou kunnen hebben waar er X van zijn en niet meer.
Stel ik wil dit in een shop proppen hoe en wanneer hou ik dan bij dat een product is verkocht / uitverkocht ?
Doe ik dat op het moment dat de klant het product in zijn winkelmandje stopt ?
Doe ik dat op het moment dat deze afrekend ?
Maak ik een tussenstap met bijv een soort boodschappenlijstje en daarna haal deze op ?

Wie doet wat en hoe ?

Liefst PHP antwoorden maar mag ook gevarieerder :)

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Ik denk dat je bij het laten zien van de artikelen er al een label aan moet plakken dat hij uitverkocht is, en daarna na elke stap weer. Beter te veel als te weinig

Verwijderd

ff logisch nadenken.

Product A: max #items = X.
Huidige voorraad is X-verkocht aantal.

Dus X wordt minder zodra je een artikel verkoopt, niet zodra je het in je mandje doet. Maar als je een hele drukke shop hebt en 1 gewild artikel, dan is het zaak om die zo snel mogelijk in je mandje te krijgen. Daarvoor moet je een afweging maken.

Wat mij het handigste lijkt, is om op het punt waar je het product als (semi)definitief aan een klant koppelt (het klant-order-ontkoppel-punt (oftewel KOOP)) ook te gebruiken als punt waarop je aangeeft of het product nog aanwezig is.

Dus bij het maken van de calculatie van de huidige voorraad komt dan een soort if-statement die checkt of het KOOP wel geldig is.

weer ff terug, als je een drukke shop hebt, veel bezoekers e.d. dan zou ik het bij het "in het mandje doen" een gil geven, bij een relatief rustige shop pas bij betalen.

  • vandijk
  • Registratie: Oktober 1999
  • Laatst online: 16-09 22:19
Wat je zowieso moet doen is de voorraad positie opslaan bij het product. Op die manier kan je zien of het artikel beschikbaar is ( >0 ) of besteld moet worden ( <1 )
Je kunt eventueel beslissen, indien de vorraadpositie tussen 0 en 10 ligt, om dan af te drukken hoeveel je er hebt.
Bij het 'afrekenen' verlaag je de voorraadpositie met het aantal bestelde producten.
Bij binnenkomst van de producten hoog je de teller weer op.
Eventueel kun je ook nog een verwachte leverdatum aan het product toevoegen.
je kan dan bij het product het volgende opnemen:
voorraad <1 -> verwacht na [datum]
voorraad >0, <=10 -> X op voorraad
voorraad >10 -> uit voorraad leverbaar

Hier is niets php aan :)

Canon cameras en lenzen. Elinchrom flitsers, Lowepro en Pelican tassen/koffers. Polestar 2


Verwijderd

Mag ik me even helemaal aansluiten bij VanDijk? Is misschien nog naar analogie van mijn relaas een mogelijkheid voor uiterst drukke shops om onderscheid te maken in een plankvoorraad en bestellingsvoorraad. Dus bijvoorbeeld:

Product X:
Op de plank: 10
In bestelling: 6

Eigenlijke voorraad = 16, maar omdat een deel al in de mandjes zit, kun je niet alle 16 aan iedereen beloven. Hiervoor moet je dus twee maal een routine inbouwen.

Verwijderd

Topicstarter
Ok duidelijk wel.
Nu nog een bijkomend effect, ik stop in mijn mandje product A en maak vervolgens mijn shop actie niet af.... wat nu ?

Hoe hou ik dit bij ? Sessies ? Wie doet nu wat en hoe ? en is een product nog op voorraad als je het in je mandje hebt ?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Je kunt de representatie van online voorraad nooit af laten hangen van de bestellingen die klanten doen. De gene van wie de shop is (de winkelhouder, zogezegd) moet de voorraad gewoon synchroniseren met wat er in zijn zaak gebeurt.

Anders kloppen de getallen binnen no-time niet meer.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Sessies, altijd prima, tijdslimietje d'r bij, moet lukken dacht ik zo.

Elke keer als iemand de voorraad opvraagt, ga je sessiechecks doen, en wanneer zo'n sessie niet meer geldig is, in one way or another, dan zet je dat product weer terug in 't schap.

Verwijderd

is zoiets niet een optie?
code:
1
2
3
4
5
SELECT
        COUNT(voorraad.artikel) voorraad,
        COUNT(mandjes.artikel) gereserveerd,
        IF(COUNT(voorraad.artikel) - COUNT(mandjes.artikel) > 0, 'Ja', 'Nee') beschikbaar
    FROM voorraad, mandjes

voorraad is je magazijn voorraad, gereserveerd is wat er in mandjes zit op het moment dat de pagina getoond wordt, en beschikbaar geeft Ja, of Nee al naar gelang er op dat moment nog iets besteld kan worden.
Dan kan je bij definitieve bestelling het artikel uit het magazijn (tabel voorraad) laten halen ..
Of is dit niet wat je bedoelt?

* nootje: ik heb bovenstaande code niet getest ofzo, dus pin me niet vast op notatiefoutjes :)

Verwijderd

Lijkt me wel handig dat je voor een artikel ook een variabele uitverkocht string bijhoud die gesynkt is met de sessie van de users.
Anders heb je met nog twee artikelen in de vooraad dus drie mensen die zien dat er nog twee zijn, terwijl er in werkelijkheid een persoon is die dus niets krijgt.
Snapt iemand me nog?

Verwijderd

nee, leg es uit :P

Dat probleem is er toch niet met mijn oplossing, of zie ik nou iets over het hoofd?
3 mensen winkelen, er zijn nog 2 producten, de eerste 2 die het in hun mandje gooien zetten de status op "Gereserveerd" (dus niet meer beschikbaar), dus ziet de derde persoon dat ook.
Bij het afmelden of wanneer het mandje vernietigd wordt, is het product niet meer in de tabel mandjes, dus weer beschikbaar voor verkoop.

[edit: /me moet leren tiepun]

Verwijderd

Dat bedoel ik ja. Sorry, ik denk dat ik je reactie niet goed gelezen had.

Verwijderd

Topicstarter
Ok dan gaat lekker zo :) Nog best wel wat reacties, dit ga ik dan wel niet direct gebruiken maar ik weet hoe de meningen zijn verdeelt.

Toch heb ik een redelijk idee dat een webshop wat lastig is.... het kan nou eenmaal voorkomen dat je nu met je mandje bij de kassa komt en dat iemand anders je boodschappen al gereserveerd heeft en deze er dus zo uit jat..... :(

Ik denk dat ik maar eens moet gaan experimenteren met sessions en misschien met een duidelijke stap van mandje naar kassa.

Voor meer meningen en feiten staan we natuurlijk weer open. :)
Pagina: 1