Pages:
Author

Topic: BitShop - cryptocurrency shopping cart script [PHP/MYSQL] (v1.1.2) - page 12. (Read 74905 times)

newbie
Activity: 7
Merit: 0
Is anybody having issues with this whilst running MySQL 5.6?
legendary
Activity: 1536
Merit: 1000
electronic [r]evolution
For #1 - what if it wasnt even physical shipping per se?  What if it was just express delivery of a custom script or a sub-feature that cost a little extra? While user logins would be cool, i wouldnt see that being a barrier to a supplemental option that just adds a bit to the total $ amount due.  Personally, i like the current setup of not having a user signup to go thru.  How easy would you think this supplemental option with additional $ amounts would be to customize?
I don't exactly see why you want to add on an additional cost if there's nothing physical to ship. Files can already be downloaded instantly after the payment is confirmed so you can't get much more express than that. But if you're using the manual email method then I can see why it might be slightly useful. The reason I want to wait until I create a user account system before adding support for physical items is so that returning customers don't have to write out their shipping address every time they buy something, among several other reasons. When I do it, I want to do it properly. There's a lot more to selling physical items than you might initially realize, that's why most other shopping cart applications are so complicated.

I wouldn't get rid of the fast anonymous checkout option even if I did create a user login system. My plan is that when people go to checkout they can have the option of creating a new account, logging in with an existing account, or proceeding with an anonymous checkout. The other good thing about a user login system is that I can allow users to fill their carts with multiple items before checking out instead of buying one item at a time. Then they can view all their files and their complete order history by logging into their account. I basically want to implement all these ideas at the same time because they all fit together perfectly, which is why I don't want to release little plugins that half-do the job.

Just curious but what do you think the shopping cart interface that is the easiest to setup/maintain outside of bitshop is?  Ive looked at opencart, oscommerce, etc and they seemed so taxing on setup/administration compared to bitshop?  Did you like any of them as far as ease-of-setup/admin goes?
Well like I said selling physical items is a lot more complicated than selling digital items. But I am pretty good at making things easy to use and I think you'd have trouble finding anything else as simple and elegant as BitShop. But unfortunately if you want to sell physical items then BitShop probably isn't the best way to do it right now, but maybe in the future when I implement those ideas I just mentioned it will be the best way.

Problem #1 - partial payments - i tried to setup the shop to allow for "4 digit accuracy".  My expectation was that a payment accurate to the 4th digit would qualify as PAID IN FULL.  So for example, an amount due of 0.123499807 would allow for a payment of .1234 and be considered PAID at that point.  But i had varying results on a test item which cost .001859 at the time of testing.
I assume you're referring to the payment variance setting? The default value is 0.000001 which means that the amount received can be 0.000001 less than expected. It doesn't just ignore everything after the nth digit as you expected.

- a link to update the wallet balances for each order and displays balance as a column field.  That way I could visually make sure the payment amt matches amt due.
If you go to MANAGE ORDERS and then click on one of the rows you will see all the details of that order. You will also see a link which says "get balance". If the order has been paid it will notify you and update the status of the transaction. If you have an unconfirmed order you can use that feature to check the balance of the address attached to the order before you delete it.

- Going to my example of the 4 digit accuracy payments - the red/green flagging wasnt giving the appropriate flags based on what was in the wallets.  Again, im wondering if the balance in the payment wallet + current confirmation amounnts is something that auto-updates?
Well partially received payments are still technically incomplete and so they remain red. I guess I could make the rows for partially paid orders orange so you can tell the difference. It's actually not so simple because BitShop doesn't record the exact balance of each address, it only knows if the required amount has been paid or not. But I can see why that might pose an issue with accounting because you wont know exactly how much you made until you export your private keys into a wallet which can tell you the balance of each address. It shouldn't be too hard to remedy this issue, I'll try to improve the situation in the next version.

While the EXPORT KEYS is cool - my point was having a pre-generated list that is fed in and then doled out until you run out of wallets at which point u import more wallets.  The current way requires u to export, decrypt and then sweep all the balances to ur final personal wallet.
Oh I see what you mean now, I thought you were talking about using the same set of addresses repeatedly. What you mention is possible but wouldn't be a very good solution because your shop would stop working if it ran out of addresses. You'd have to manually make sure it was always supplied with fresh addresses. But I can see why some people may like that option because the private keys don't need to be stored on the server or trusted with a 3rd party like coinbase, so I'll consider adding it into the next version of BitShop.

Am i correct that the addys are generated on the fly at time of checkout?  So whatever i export on order mgmt page will equal the # of orders.
Yes, there is one private key and one address for every order (addresses are created from private keys so all you really need to worry about is the private keys). Think of the private key as the key to unlock the coins held in the corresponding address. A wallet is essentially just a collection of private keys.
newbie
Activity: 5
Merit: 0
legendary
Activity: 1536
Merit: 1000
electronic [r]evolution
1. Item supplemental option - basically envisioning a delivery method option on each item which adds a supplemental price to the total amount.  So item A costs 10 and std delivery is 2 and express delivery is 5.  Buyer choose express delivery so their checkout amount is 15.
Several people have requested this and the answer is always no. BitShop is designed to sell digital products not physical products. That was my intention from the start. There are already countless shopping cart software packages which allow you to sell physical items. My goal with BitShop was to offer something tailored for selling digital items. However if I ever get around to adding a user login system I might add some basic shipping support, but it's a long way off.

2. Checkout page - please dont take offense but this is the worst part about the whole process.  It gets stuck alot and causes issues so i would prefer that it tells buyer that order is paid as soon as payment hits blockchain at 0 confirms.  I will take the risk of not waiting for 1 confirm.  I assume this is how bitpay style checkout works and why the buyer success page is so fast in those checkout pages?  Then im guessing that the vendor will not send goods if the order winds up with zero confirmations in an hour.
It shouldn't get stuck, but I'm currently recoding a lot of the payment gateway to make it work smoother, that will be in the next version. You can always use the coinbase API if you don't want to use the default payment gateway (see the SCI settings). The blockexplorer.com API doesn't even support 0 confirmation transactions which is one of the main reasons you can't use 0 confirmations in the default API. However I believe the coinbase API should behave similar to bitpay and accept tx's with 0 confirmations.

3. Order mgmt page - custom field columns display to see more info on order.
Have you tried clicking on one of the rows to bring up more detail on a specific order?

4. Order mgmt page - some sort of formula action that could run and return a value that tells me whether the payment is on up and up.  In other words, if i had an order for 15 usd and the payment amount was 10, it would tell me that at a glance with a status of partial payment received.  If it was 15 and 15 and 1 confirmation had passed on blockchain, itd give me a successful payment received status.
If the row is green it means the payment has been fully confirmed, if the row is red it means the order hasn't been confirmed. That may be because payment wasn't received in full or because they abandoned the transaction mid-way through.

5. Payment wallets - id prefer to use a csv file with payment addresses or some kind of automation based on my mpk (ive seen something called addrgenerator.php which seems like something id like).  Open to ideas here but i am slightly nervous that im going to lose funds somehow lol.  Has anybody ever had a single payment lost after they confirmed their decryption key worked properly?  My testing lost a payment but that was due to the decryptuon pasted wrong.  After fixed, test payments all worked so maybe im worrying too much now that i pasted the decrypt keys properly in my settings.
BitShop must generate a new address for every transaction if you use the default payment gateway. If you use the same address for multiple transactions it's very difficult to tell apart the different customers who send coins to that same address because the only thing BitShop has access to is the balance of the address. That is why a fresh address is needed each time, so that the balance always starts at 0 and makes it easy to see when the payment has been received. If you're using the default payment gateway you can export your wallet in csv format or blockchain.info format by going to ORDERS->MANAGE KEYS->EXPORT KEYS. However you can use the coinbase API instead which will let coinbase manage your wallet for you. Personally I like to have complete control over my private keys and I've never had a single issue decrypting my private keys after I set it up properly.

6. Bitcoin usd rate - a custom solution that works without goxgrab cronjob.  Im really not incredibly picky and would even run the update manually perhaps when i check my order mgmt page once a day?
There are several ways you can run the data_update.php script. You could browse to it directly in your web browser to run it. However I would suggest you create a link to www.yourwebsite.com/goxgrab/data_update.php and place it on your admin home page or order management page.
hero member
Activity: 910
Merit: 1000
Looks great.. can't wait to use it.
newbie
Activity: 7
Merit: 0
I've sent you a PM regarding a weird issue I'm getting.
member
Activity: 139
Merit: 13
Uv given me a good idea for my workaround.. Im not looking to be accurate to the nickel and i dont think my customers will mind this.  But i intend to check order mgmt page once a day.  So that would seem like a good time to run the script.  I can either:
1. just visit that script address manually before going to my order mgmt page.
2. insert code to run it on the order mgmt page (tho im not sure i should be messing witht tht page).

Anybody willing to tell me Exactly how to insert that type of thing into the order mgmt page code?  Im a total newbie so if u could tell me the file to edit and the code to insert, id really appreciate it.









Im 99% through setup but the cronjob for goxgrab is the only thing i can't workaround.

My web host provider doesn't give me access to anything like cronjob/cpanel.  I do have access to SFTP + PHPMyAdmin.   Im a bit of a beginner here but i think EVENTS or TRIGGERS on the PHPMyAdmin functionality side might be the proper route to explore.

Anybody have any guidance for me to get goxgrab (or similar price update) working?  Is it not possible to avoid running the goxgrab script altogether and instead just reference some other sites bitcoin ticker price without really needing the script?

Thanks and kudos to bit freak on this script.  Haven't fully ran it yet but for a beginner like myself, it was fairly easy to get working which says a lot.



You could be sneaky & write a little PHP script to place into index.php

Just add a require_once() for the data_update.php, and then add a little script which only allows the require_once to execute once per hour or so. That way people can't constantly update, but it will do it once per hour (Or the next time you get a visitor).



Im 99% through setup but the cronjob for goxgrab is the only thing i can't workaround.

My web host provider doesn't give me access to anything like cronjob/cpanel.  I do have access to SFTP + PHPMyAdmin.   Im a bit of a beginner here but i think EVENTS or TRIGGERS on the PHPMyAdmin functionality side might be the proper route to explore.

Anybody have any guidance for me to get goxgrab (or similar price update) working?  Is it not possible to avoid running the goxgrab script altogether and instead just reference some other sites bitcoin ticker price without really needing the script?

Thanks and kudos to bit freak on this script.  Haven't fully ran it yet but for a beginner like myself, it was fairly easy to get working which says a lot.



You could be sneaky & write a little PHP script to place into index.php

Just add a require_once() for the data_update.php, and then add a little script which only allows the require_once to execute once per hour or so. That way people can't constantly update, but it will do it once per hour (Or the next time you get a visitor).
member
Activity: 139
Merit: 13
Few requests or if anybody would be willing to customize, id pay for services if they could deliver in 1-2 weeks:

1. Item supplemental option - basically envisioning a delivery method option on each item which adds a supplemental price to the total amount.  So item A costs 10 and std delivery is 2 and express delivery is 5.  Buyer choose express delivery so their checkout amount is 15.

2. Checkout page - please dont take offense but this is the worst part about the whole process.  It gets stuck alot and causes issues so i would prefer that it tells buyer that order is paid as soon as payment hits blockchain at 0 confirms.  I will take the risk of not waiting for 1 confirm.  I assume this is how bitpay style checkout works and why the buyer success page is so fast in those checkout pages?  Then im guessing that the vendor will not send goods if the order winds up with zero confirmations in an hour.

3. Order mgmt page - custom field columns display to see more info on order.

4. Order mgmt page - some sort of formula action that could run and return a value that tells me whether the payment is on up and up.  In other words, if i had an order for 15 usd and the payment amount was 10, it would tell me that at a glance with a status of partial payment received.  If it was 15 and 15 and 1 confirmation had passed on blockchain, itd give me a successful payment received status. 

5. Payment wallets - id prefer to use a csv file with payment addresses or some kind of automation based on my mpk (ive seen something called addrgenerator.php which seems like something id like).  Open to ideas here but i am slightly nervous that im going to lose funds somehow lol.  Has anybody ever had a single payment lost after they confirmed their decryption key worked properly?  My testing lost a payment but that was due to the decryptuon pasted wrong.  After fixed, test payments all worked so maybe im worrying too much now that i pasted the decrypt keys properly in my settings.

6. Bitcoin usd rate - a custom solution that works without goxgrab cronjob.  Im really not incredibly picky and would even run the update manually perhaps when i check my order mgmt page once a day?

Bitfreak, any of these suggestions seem like something ud put in future release?  If not, anybody want to offer customization services?  Pm me..

legendary
Activity: 1536
Merit: 1000
electronic [r]evolution
Are triggers/events useless in this goal?  They sure sound like theyd do what ud want (run some event or trigger some command).  No?  Any laymans way of explaining what they are for?
You are talking about MYSQL triggers/events. They are nothing like cron jobs. They are events which get triggered when a certain action is performed on your database. If you open the /install/mysql_db.sql file you'll see it makes use of triggers, for example:

Code:
CREATE TRIGGER Products_OnInsert BEFORE INSERT ON `Products`
FOR EACH ROW SET NEW.Created = IFNULL(NEW.Created, NOW());

Basically what this does is set the default value of the 'Created' field in the 'Products' table to NOW(). In other words when a new product is inserted into the database it triggers the event and saves the time the product was created. The reason for why I used a trigger in this case is actually quite interesting. I could have used the TIMESTAMP type with a default value of CURRENT_TIMESTAMP but the TIMESTAMP type is a signed 32 bit integer which will overflow in 2038, meaning BitShop would experience problems in 2038 if I went that route.

Instead I opted to use the DATETIME type for holding the time when the product was created because it can store times up to the year 9999. The NOW() function returns the current time in DATETIME format but it turns out that you can't set the default value of a field to the output of a function so I couldn't use NOW() as the default value for the 'Created' field. The only way I could make it work as desired was to set up a custom trigger which fires when a new product is inserted into the database. A messy solution but it works.
member
Activity: 139
Merit: 13
Thanks for advice.. I think this may be best choice especially since i don't really expect a ton of visitors (10 per day at MOST).  Gonna give these two a crack and see how it goes.  If i inderstand right:

Option A: data_update.php from goxgrab - run script as first command in index,php so that basically the goxgrab script and price update is triggered by a new visitor.

Option B: Add a require_once() for the data_update.php, and then add a little script which only allows the require_once to execute once per hour or so. That way people can't constantly update, but it will do it once per hour (Or the next time you get a visitor.
-----'for option B is this also part of the index,php file?  Or is it a trigger/event that runs script? 

Are triggers/events useless in this goal?  They sure sound like theyd do what ud want (run some event or trigger some command).  No?  Any laymans way of explaining what they are for?

As for the web host panel - I'm using a place called RealHost because they provide easy onion domains.  Is there a web host who can provide onion domains that anybody uses that does allow cpanel or cronjob style access?   I actually was told same thing by all 3 hosting providers I contacted who host onion sites.  Anybody have a better hosting recommendation for me?  A vps might be the better route when it comes to onion sotes but i wanted to get a cheap learning experience first.
legendary
Activity: 1536
Merit: 1000
electronic [r]evolution
You could be sneaky & write a little PHP script to place into index.php

Just add a require_once() for the data_update.php, and then add a little script which only allows the require_once to execute once per hour or so. That way people can't constantly update, but it will do it once per hour (Or the next time you get a visitor).
Yes I think that would be the best way to do it, but also the most difficult way.
newbie
Activity: 7
Merit: 0
Im 99% through setup but the cronjob for goxgrab is the only thing i can't workaround.

My web host provider doesn't give me access to anything like cronjob/cpanel.  I do have access to SFTP + PHPMyAdmin.   Im a bit of a beginner here but i think EVENTS or TRIGGERS on the PHPMyAdmin functionality side might be the proper route to explore.

Anybody have any guidance for me to get goxgrab (or similar price update) working?  Is it not possible to avoid running the goxgrab script altogether and instead just reference some other sites bitcoin ticker price without really needing the script?

Thanks and kudos to bit freak on this script.  Haven't fully ran it yet but for a beginner like myself, it was fairly easy to get working which says a lot.



You could be sneaky & write a little PHP script to place into index.php

Just add a require_once() for the data_update.php, and then add a little script which only allows the require_once to execute once per hour or so. That way people can't constantly update, but it will do it once per hour (Or the next time you get a visitor).
legendary
Activity: 1708
Merit: 1006
Im 99% through setup but the cronjob for goxgrab is the only thing i can't workaround.

My web host provider doesn't give me access to anything like cronjob/cpanel.  I do have access to SFTP + PHPMyAdmin.   Im a bit of a beginner here but i think EVENTS or TRIGGERS on the PHPMyAdmin functionality side might be the proper route to explore.

Anybody have any guidance for me to get goxgrab (or similar price update) working?  Is it not possible to avoid running the goxgrab script altogether and instead just reference some other sites bitcoin ticker price without really needing the script?
If you have shell access you can set up your cron job that way. Without cPanel I don't know any other way to do it. If your host doesn't offer that feature then you're probably out of luck. You could manually update the price yourself every day but that would be annoying. The whole point of the cron job is to update the price periodically instead of getting the price from some remote server every time your page loads. You could do it that way but it would cause your pages to load more slowly and the ticker API may ban you for making too many requests.

cPanel is a common feature on web-hosting servers now days ,doesn't it? you must be really out of luck.
legendary
Activity: 1536
Merit: 1000
electronic [r]evolution
Im 99% through setup but the cronjob for goxgrab is the only thing i can't workaround.

My web host provider doesn't give me access to anything like cronjob/cpanel.  I do have access to SFTP + PHPMyAdmin.   Im a bit of a beginner here but i think EVENTS or TRIGGERS on the PHPMyAdmin functionality side might be the proper route to explore.

Anybody have any guidance for me to get goxgrab (or similar price update) working?  Is it not possible to avoid running the goxgrab script altogether and instead just reference some other sites bitcoin ticker price without really needing the script?
If you have shell access you can set up your cron job that way. Without cPanel I don't know any other way to do it. If your host doesn't offer that feature then you're probably out of luck. You could manually update the price yourself every day but that would be annoying. The whole point of the cron job is to update the price periodically instead of getting the price from some remote server every time your page loads. You could do it that way but it would cause your pages to load more slowly and the ticker API may ban you for making too many requests.
member
Activity: 139
Merit: 13
Im 99% through setup but the cronjob for goxgrab is the only thing i can't workaround.

My web host provider doesn't give me access to anything like cronjob/cpanel.  I do have access to SFTP + PHPMyAdmin.   Im a bit of a beginner here but i think EVENTS or TRIGGERS on the PHPMyAdmin functionality side might be the proper route to explore.

Anybody have any guidance for me to get goxgrab (or similar price update) working?  Is it not possible to avoid running the goxgrab script altogether and instead just reference some other sites bitcoin ticker price without really needing the script?

Thanks and kudos to bit freak on this script.  Haven't fully ran it yet but for a beginner like myself, it was fairly easy to get working which says a lot.

newbie
Activity: 7
Merit: 0
Great job buddy ,this is a very useful tool for the Bitcoin community ,
Easy setup ,and management .

I just wonder ,there is any way to disable the confirmation of the transactions? (so the buyer won't have to wait)

I highly advise you don't do that, or everyone will be getting everything free from your shop by sending double-spends.
Have at least 1 confirmation for your own safety.
legendary
Activity: 1708
Merit: 1006
@lemipawa
Change payment gateway to Coinbase's one.
Coinbase is what I use and have no issues yet. Easier than managing keys for god knows how many trans. Just use Coinbase and make sure you enable 2FA on your coinbase account.

thanks Smiley
the management of the transaction is much more easier using the Coinbase feature  ,
the decryption of the keys was pretty annoying
legendary
Activity: 1064
Merit: 1001
@lemipawa
Change payment gateway to Coinbase's one.
Coinbase is what I use and have no issues yet. Easier than managing keys for god knows how many trans. Just use Coinbase and make sure you enable 2FA on your coinbase account.
hero member
Activity: 734
Merit: 507
@lemipawa
Change payment gateway to Coinbase's one.
legendary
Activity: 1708
Merit: 1006
Great job buddy ,this is a very useful tool for the Bitcoin community ,
Easy setup ,and management .

I just wonder ,there is any way to disable the confirmation of the transactions? (so the buyer won't have to wait)
Pages:
Jump to: