webshop batch printen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
Hallo,

Ik ben mij aan het oriënteren op het beginnen van een webshop en ben al aardig op weg. Ik heb verschillende open source webshops geïnstalleerd om uit te proberen. Prestashop, Tomatocart, Zencart, Cubecart, Oscommerce en Opencart.

Momenteel gaat mijn voorkeur uit naar Tomatocart door de gebruiksvriendelijke online interface van de webshop en het feit dat het voortkomt uit Oscommerce maar met alle fijne functies voorgeïnstalleerd voor onder andere ook de SEO.

Nu loop ik tegen het volgende probleem aan en dat is het uitprinten van bestellingen. Dit probleem heb ik met alle webshops die ik heb uitgeprobeerd.

Ik verwacht per dag behoorlijk wat bestellingen binnen te krijgen. Zelf denk ik zo'n 50 tot 100 bestellingen per dag. Maar deze webshops bieden geen van allen een simpele manier van het uitprinten van bestellingen en het uitprinten van de NAW gegevens op een label. Dit lijkt overal per bestelling handmatig gedaan te moeten worden en dan zit ik nog met het probleem van het uitprinten van de NAW gegevens.

Oscommerce biedt wel een mogelijkheid om grote bestellingen tegelijkertijd te printen, maar heel erg handig werkt het niet.

Ik vroeg mij dus af hoe andere ondernemers dit probleem hebben opgelost of wat een goede oplossing is? De bedoeling is dus dat ik de pakbon of factuur en NAW gegevens van alle bestellingen waarvan de betaling is ontvangen in een keer kan uitprinten. Het zou ook heel erg mooi zijn als de status dan direct gewijzigd kan worden zoals dit ook mogelijk is met batch print in Oscommerce of de volgorde is aan te passen naar het product zodat ik alle producten netjes in volgorde kan inpakken.

Ik hoop dat het allemaal duidelijk is.

Alvast bedankt

Acties:
  • 0 Henk 'm!

  • Douweegbertje
  • Registratie: Mei 2008
  • Laatst online: 14-10 18:49

Douweegbertje

Wat kinderachtig.. godverdomme

Op het moment dat je zeker weet dat je grote aantallen gaat krijgen kun je ervoor kiezen om iets te laten maken. Elke 'webshop' wat je nu opnoemt staat wat dat betreft open voor plugins e.d. Daarbij zal ik je alvast verklappen dat sommige hiervan allang bestaan, maar dat je niet hebt gezocht (of niet goed genoeg ;) ).

In elk geval verwacht je 50-100 bestellingen(en heb je het dus niet), dus geef ik je het advies om er niet te veel mee bezig te zijn. Ook al zou je misschien een x-aantal dagen zo'n 50 orders moeten printen.. dan is dat qua tijd niet zo'n enorme ramp. Als je het dan zeker weet kun je tenminste financiële middelen apart zetten om ervoor te zorgen dat je webshop een betere IT infra heeft en kun je dingen gaan automatiseren.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Je plaatst dit in Programming, maar kun je zelf ook programmeren? Want dan zou je eenvoudig een script kunnen schrijven dat alle stappen voor het uitprinten van één order gewoon herhaalt.

Acties:
  • 0 Henk 'm!

  • eM.
  • Registratie: Mei 2010
  • Laatst online: 14-10 20:14

eM.

Howmessages schreef op maandag 17 maart 2014 @ 21:37:
Ik vroeg mij dus af hoe andere ondernemers dit probleem hebben opgelost of wat een goede oplossing is?
Dit hangt van zoveel verschillende dingen af. Gaat het om briefpost, pakketten of beide? Gaat het om verschillende producten of zijn het allemaal dezelfde producten? Wil je het zelf gaan inpakken, of ga je het uitbesteden? Met welke vervoerders wil je gaan samenwerken? Gaat het om binnenlandse of buitenlandse post?

Verder snap ik niet wat dit direct met programming te maken heeft ;)

Acties:
  • 0 Henk 'm!

  • basst85
  • Registratie: Juni 2009
  • Laatst online: 09-10 09:12
Als je een XML kan genereren met alle nieuwe bestellingen dan is dit mogelijk iets:
MSDN: Using PHP to Create a Word 2007 Document

Vervolgens kun je de gegenereerde docx bestanden printen met een batch file.

Je kunt ook met PHP pdf bestanden genereren en deze daarna automatisch printen, bijvoorbeeld met "GSPRINT".

Acties:
  • 0 Henk 'm!

Verwijderd

Kijk ook eens naar TCPDF, om door middel van HTML een PDF in elkaar te zetten.

Off-topic:

Als je met login gegevens ga werken, Prestashop slaat wachtwoorden op als plaintext ff als heads-up.

Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
Douweegbertje schreef op maandag 17 maart 2014 @ 21:45:
Op het moment dat je zeker weet dat je grote aantallen gaat krijgen kun je ervoor kiezen om iets te laten maken. Elke 'webshop' wat je nu opnoemt staat wat dat betreft open voor plugins e.d. Daarbij zal ik je alvast verklappen dat sommige hiervan allang bestaan, maar dat je niet hebt gezocht (of niet goed genoeg ;) ).
Ik heb het internet redelijk wat afgezocht maar hetgeen wat ik zou willen hebben, dat heb ik niet als plug-in kunnen vinden.
In elk geval verwacht je 50-100 bestellingen(en heb je het dus niet), dus geef ik je het advies om er niet te veel mee bezig te zijn.
Ik wil wel voorbereid zijn op het moment dat die 50 bestellingen per dag er zijn. Het kan zijn dat het weken gaat duren alvorens ik dit punt bereik, maar het kan goed mogelijk zijn dat ik in een zeer korte tijd dit aantal al behaal.

Aangezien ik de webshop naast mijn part-time baan in de avonduren zal doen, is tijd dus van belang.
Ook al zou je misschien een x-aantal dagen zo'n 50 orders moeten printen.. dan is dat qua tijd niet zo'n enorme ramp. Als je het dan zeker weet kun je tenminste financiële middelen apart zetten om ervoor te zorgen dat je webshop een betere IT infra heeft en kun je dingen gaan automatiseren.
Ik ben liever voorbereid dan dat ik zo dadelijk veel tijd moet steken in het uitprinten van bestellingen of snel iemand moet inhuren om dit voor elkaar te krijgen.
HuHu schreef op dinsdag 18 maart 2014 @ 08:31:
Je plaatst dit in Programming, maar kun je zelf ook programmeren? Want dan zou je eenvoudig een script kunnen schrijven dat alle stappen voor het uitprinten van één order gewoon herhaalt.
Ik heb de nodige kennis van HTML, CSS, PHP maar het geheel zelf programmeren zal lastig worden. Ik sluit niet uit dat het mogelijk is en dat het ook mogelijk is om eventueel andere talen te leren.

Zo ben ik ook tegengekomen om dit via Microsoft Access voor elkaar te krijgen. Hiermee zou ik de gegevens uit de online database kunnen halen en in de volgorde kunnen uitprinten zoals ik dat zou willen.
eM. schreef op dinsdag 18 maart 2014 @ 09:03:
[...]


Dit hangt van zoveel verschillende dingen af. Gaat het om briefpost, pakketten of beide? Gaat het om verschillende producten of zijn het allemaal dezelfde producten? Wil je het zelf gaan inpakken, of ga je het uitbesteden? Met welke vervoerders wil je gaan samenwerken? Gaat het om binnenlandse of buitenlandse post?
99,9% van alle bestellingen zullen per briefpost bij Postnl afgeleverd gaan worden. Het gaat om kleine bedragen en kleine producten maar de verwachting is dus dat het om veel bestellingen per dag gaat. De manier van verzenden en inpakken etc. is al uitgedokterd.

Er moet dus een mogelijkheid komen om een programma / link in de backoffice te openen (bij voorkeur ook geschikt voor OS X) waarbij de openstaande bestellingen kan inladen, eventueel kan selecteren en kan sorteren op productnaam / productgroep / productnummer en vervolgens de NAW gegevens via een (label)printer kan uitprinten en de factuur of pakbon op dezelfde volgorde als de uitgeprinte NAW gegevens kan uitprinten.

Het zou dan helemaal mooi zijn als de bestelling uitgeprint wordt, de status van de bestelling gewijzigd zal worden naar "bezig met verwerken." o.i.d. en wanneer de bestellingen zijn ingepakt, de uitgeprinte bestellingen gewijzigd worden naar "afgeleverd bij Postnl" met een mail naar de klant dat de bestelling is afgeleverd bij Postnl.
basst85 schreef op dinsdag 18 maart 2014 @ 09:33:
Als je een XML kan genereren met alle nieuwe bestellingen dan is dit mogelijk iets:
MSDN: Using PHP to Create a Word 2007 Document

Vervolgens kun je de gegenereerde docx bestanden printen met een batch file.

Je kunt ook met PHP pdf bestanden genereren en deze daarna automatisch printen, bijvoorbeeld met "GSPRINT".
Hier ga ik eens naar kijken, bedankt.

Acties:
  • 0 Henk 'm!

  • eM.
  • Registratie: Mei 2010
  • Laatst online: 14-10 20:14

eM.

Als het allemaal verschillende producten zijn, is het verstandiger om bestellingen een voor een af te ronden. Soms lijkt het handig om alles in batches te doen, maar vaak is dit een schijngevoel van efficiëntie.
Lees ook: http://www.seoshop.nl/wp-...g-je-magazijn-er-zijn.pdf

Wellicht is een Dymo-label writer interessant? Je kunt gebruik maken van een javascript API om labels vanuit de browser (Google Chrome of Firefox) te printen. Tevens kun je eventueel gewoon een CSV lijst importeren en alle labels in een keer printen. Ik zou ook zeker even spieken bij SEOShop, zij hebben veel koppelingen die gericht zijn op automatisering.

Voor de frankering zou je kunnen onderzoeken of je het aan kan bieden als "partijenpost gemengd" bij PostNL.

[ Voor 3% gewijzigd door eM. op 19-03-2014 11:36 ]


Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
eM. schreef op woensdag 19 maart 2014 @ 10:15:
Als het allemaal verschillende producten zijn, is het verstandiger om bestellingen een voor een af te ronden. Soms lijkt het handig om alles in batches te doen, maar vaak is dit een schijngevoel van efficiëntie.
Lees ook: http://www.seoshop.nl/wp-...g-je-magazijn-er-zijn.pdf
Ik snap wat je bedoelt, maar in dit geval zal batch printen een stuk sneller gaan en minder fouten opleveren dan per bestelling uitprinten.

Van elk product zullen uiteindelijk gemiddeld zo'n 10 bestellingen per dag binnenkomen. Deze zou ik dus ook graag bij elkaar willen hebben zodat ik niet de producten door elkaar in moet pakken.

Op het moment van inpakken zal alle aandacht naar die bestelling gaan. Het inpakken zal snel gebeuren. Zo'n 20 tot 30 seconden per bestellingen.

Desalniettemin bedankt voor de link.
Wellicht is een Dymo-label writer interessant? Je kunt gebruik maken van een javascript API om labels vanuit de browser (Google Chrome of Firefox) te printen. Tevens kun je eventueel gewoon een CSV lijst importeren en alle labels in een keer printen. Ik zou ook zeker even spieken bij SEOShop, zij hebben veel koppelingen die gericht zijn op automatisering.
Het zal hoogstwaarschijnlijk een Dymo-labelprinter worden, ja.
Voor de frankering zou je kunnen onderzoeken of je het aan kan bieden als "partijenpost gemengd" bij PostNL.
Bedankt. Dit is inderdaad wat ik ook al had uitgezocht. Dit zal met een "Port betaalt" print op de envelop gaan. Hier, en eigenlijk alle andere onderdelen heb ik verder geen problemen mee. Natuurlijk zullen er nog veel uitdagingen op mijn pad terecht komen, maar de uitdaging voor nu is het printen. Ik ben nu het een en ander aan het uitproberen in Microsoft Acces en dat lijkt aardig te lukken. Ik krijg nog niets geprint, maar de data kan ik binnenhalen. Nog even mee oefenen en proberen dus.

Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
Na veel geklooi met Microsoft Acces toch niet het gewenste resultaat verkregen en ben ik verder gaan zoeken. Toch weer uitgekomen bij osCommerce met de "Batchprint_noPDF" functie geïnstalleerd om daar het een en ander in aan te passen.

Dit heb ik redelijk voor elkaar gekregen, op een functie na die ik nog graag zou willen zien. De sorteervolgorde instellen op "product_model".

De code hiervoor heb ik wel gevonden.

code:
1
2
3
4
5
6
7
8
9
if (isset($HTTP_GET_VARS['cID'])) {
      $cID = tep_db_prepare_input($HTTP_GET_VARS['cID']);
      $orders_query_raw = "select o.orders_id, o.customers_name, o.customers_id, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.customers_id = '" . (int)$cID . "' and o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by orders_id DESC";
    } elseif (isset($HTTP_GET_VARS['status'])) {
      $status = tep_db_prepare_input($HTTP_GET_VARS['status']);
      $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and s.orders_status_id = '" . (int)$status . "' and ot.class = 'ot_total' order by o.orders_id DESC";
    } else {
      $orders_query_raw = "select o.orders_id, o.customers_name, o.payment_method, o.date_purchased, o.last_modified, o.currency, o.currency_value, s.orders_status_name, ot.text as order_total from " . TABLE_ORDERS . " o left join " . TABLE_ORDERS_TOTAL . " ot on (o.orders_id = ot.orders_id), " . TABLE_ORDERS_STATUS . " s where o.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "' and ot.class = 'ot_total' order by o.orders_id DESC";
    }


"order by o.orders_id DESC" is verantwoordelijk voor het ordenen. Nu kan ik dit niet vervangen voor "product_model" omdat deze niet in de query "orders" staat maar in de query "orders_products". Nu moet ik volgens mij dus deze query ook oproepen, echter heb ik geen idee hoe dit in zijn werking gaat. Zo'n held ben ik nog niet met PHP, ik ben nog lerende.

Zou iemand mij kunnen helpen hiermee en mij een stap in de goede richting brengen?

Acties:
  • 0 Henk 'm!

  • emmerwater
  • Registratie: Juni 2011
  • Laatst online: 10-10 10:11
Wij weten natuurlijk niet hoe je database model er uit ziet, dus die vraag is een beetje lastig te beantwoorden. Aan je SQL-query te zien Is er een TABLE_ORDERS. Grote kans dat hier een kolom 'product_id' in zit. Deze refereert dan waarschijnlijk naar de kolom 'id' van de tabel TABLE_PRODUCTS.
Je zou dan in de query de tabellen kunnen joinen met elkaar, bijvoorbeeld:

select TABLE_PRODUCTS.`product_name`, TABLE_ORDERS.`order_number`
from TABLE_ORDERS
left join TABLE_PRODUCTS.`id` on TABLE_ORDERS.`product_id`
order by TABLE_PRODUCTS.`product_model` desc;

SQL is overigens al weer een tijdje geleden voor mij; grote kans dat het niet precies klopt, maar dan weten mensen mij vast wel te verbeteren :P

Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
In phpMyAdmin kan ik dit wel voor elkaar krijgen met:

SELECT orders.customers_name, orders_products.products_model, orders.orders_id
FROM orders
LEFT JOIN orders_products
ON orders.orders_id=orders_products.orders_id
ORDER BY orders_products.products_model

Maar om dit in PHP voor elkaar te krijgen, is nog een heel stuk lastiger. Gaat zoiets overigens geen problemen opgeven wanneer mensen twee producten bestellen en er dus twee products_model zijn?

EDIT: Blijkbaar wel dus. Ik heb nu de volgende code:

code:
1
2
3
4
5
6
7
8
9
      $orders_query_raw = "
      select orders.orders_id, orders.customers_name, orders.payment_method, orders.date_purchased, orders.last_modified, orders.currency, orders.currency_value, orders_products.products_model
      
      from " . TABLE_ORDERS . " orders left join " . TABLE_ORDERS_PRODUCTS . " orders_products
      
      on (orders.orders_id = orders_products.orders_id)
                   
      order by orders_products.products_model DESC";
    }


Hiermee krijg ik het volgende resultaat:

Afbeeldingslocatie: http://i.imgur.com/t4w4Da0.png

Zoals te zien is, krijg ik tweemaal de order te zien van 17:46:21 wat een order is. Wanneer ik hem echter uitprint, komt het wel als 1 order uitgeprint en niet als 2. Ik vraag mij echter af of dit verder geen problemen zal gaan leveren. Zo niet, dan kan ik er mee leven.

Het missen van Order Total vind ik niet erg. Als ik de prijs wil weten, ga ik wel nar de orders toe. Echter is de Status wel van groot belang. Deze krijg ik niet terug, dan krijg ik allemaal foutmeldingen.

[ Voor 55% gewijzigd door Howmessages op 22-03-2014 18:59 ]


Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
Vandaag ben ik weer bezig geweest met de code, maar wat ik ook probeer, het lukt mij niet en ik krijg continue PHP SYNTAX foutmeldingen. Momenteel krijg ik deze foutmedling met de volgende code:

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''4' at line 5

select count(*) as total from orders orders left join orders_products orders_products on (orders.orders_id = orders_products.orders_id), orders_status s where orders.customers_id = '0' and orders.orders_status = s.orders_status_id and s.language_id = '4


code:
1
2
3
4
5
6
7
8
9
10
      $orders_query_raw = "
      select orders.orders_id, orders.customers_name, orders.payment_method, orders.date_purchased, orders.last_modified, orders.currency, orders.currency_value, orders_products.products_model, orders.orders_status
      
      from " . TABLE_ORDERS . " orders left join " . TABLE_ORDERS_PRODUCTS . " orders_products
      
      on (orders.orders_id = orders_products.orders_id), " . TABLE_ORDERS_STATUS . " s
      
      where orders.customers_id = '" . (int)$cID . "' and orders.orders_status = s.orders_status_id and s.language_id = '" . (int)$languages_id . "
                         
      order by orders_products.products_model DESC";


Wat doe ik verkeerd?

Acties:
  • 0 Henk 'm!

  • Fish
  • Registratie: Juli 2002
  • Niet online

Fish

How much is the fish

Veel printers snappen wel postscript, kun je geen eenvoudige postscript template maken ? (los van je sql probleem)


geen ' achter de 4 of juist een ' teveel voor de 4 ?

[ Voor 32% gewijzigd door Fish op 23-03-2014 23:55 ]

Iperf


Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
Inderdaad, een ' vergeten. Alhoewel ik nu nog altijd geen status te zien krijg. Vreemd.

Acties:
  • 0 Henk 'm!

  • Howmessages
  • Registratie: Maart 2014
  • Laatst online: 11-10 10:28
Het is alweer een tijdje geleden dat ik dit topic geopend heb maar ik wil jullie toch nog even bedanken.

Momenteel is de webshop volledig functioneel en heb ik sinds vorige week dinsdag mijn eerste klanten mogen verwelkomen. Het aantal bestellingen stijgt momenteel ook met een mooie lijn en ik zit momenteel al bijna tegen de 50 bestellingen per dag aan. Mijn verwachtingen zijn dus goed geweest. Het assortiment zal uitgebreid worden waarna ik hopelijk richting de 100 bestellingen per dag toe ga.

Webshop draait overigens op osCommerce met als oplossing voor het printen Batch Print uit de osCommerce ad-ons, een Samsung laserprinter voor de facturen en een Dymo LabelWriter 450 voor de labels. Deze combinatie werkt erg fijn. Via Batch Print kan ik het CSV-bestand gemakkelijk in de software van Dymo laden en zo alle labels uitprinten. Er zit wel een nadeel aan en dat is dat ik iedere keer handmatig het CSV-bestand moet verwijderen omdat de Dymo software automatisch "klantadressen.csv" importeert en als de oude nog in de downloads staat, het nieuwe CSV-bestand "klantadressen-1.csv" wordt genoemd. Dan worden de klantadressen van de vorige batch dus nogmaals uitgeprint.

Eens zien of ik hier iets aan kan doen. Ik heb al zitten kijken naar Automator in OS X maar dat is nog lastiger dan ik dacht. Misschien iemand tips?

Acties:
  • 0 Henk 'm!

Verwijderd

*spam :r *

[ Voor 119% gewijzigd door NMe op 22-04-2015 18:01 ]


Acties:
  • 0 Henk 'm!

  • johnkeates
  • Registratie: Februari 2008
  • Laatst online: 04-07 16:30
Dit soort zaken automatiseer je meestal met cronjobs en een shell scripting taal naar keuze :) Als je shop goed loopt zou ik iemand betalen om het voor je in elkaar te zetten. Dan heb je ook meteen een soort van klantenservice waar je terecht kan voor eventuele uitbreidingen en veranderingen. Zelf doen is leuk, maar op het moment dat je groeit en de zaak goed loopt kan je je het eigenlijk niet meer veroorloven om dingen net-niet-helemaal-goed te doen :p Net als beveiliging trouwens, ik weet niet wat je shop is, maar gezien een shop over het algemeen een goudmijntje is voor hackers die gegevens willen stelen wordt je hoe beter je shop loopt een groter doelwit.

Wat je specifieke CSV probleem betreft: maak een script dat het bestand naar je bureaublad verplaatst oid en dan Dymo opent met de CSV als argument. Daarna kan je als het script weer uitgevoerd wordt het oude bestand automatisch overschrijven.

[ Voor 5% gewijzigd door johnkeates op 22-04-2015 16:55 ]

Pagina: 1