Jump to content
thirty bees forum

Help me develop killer One Page Checkout module


datakick

Recommended Posts

I guess this would be a feature request...

Could you make it so that when a person is already signed in, and has an address in the db, that your module picks up that info, and fills in the top Shipping To info?  For most people that would be one less thing they have to fill in / one less step.  I would still leave the fields up there in case they want to change that info...

Link to comment
Share on other sites

2 hours ago, SLiCK_303 said:

I guess this would be a feature request...

Could you make it so that when a person is already signed in, and has an address in the db, that your module picks up that info, and fills in the top Shipping To info?  For most people that would be one less thing they have to fill in / one less step.  I would still leave the fields up there in case they want to change that info...

Such feature request should probably be implemented in thirtybees core.

If this was implemented in chex only, then it could surprise customers, because the prices might be different than what's shown in cartblock. That's because cartblock could be using different country to calculate shipping / taxes / etc

Right now, when you go to chex page, it will use the information saved in the context == the same info cartblock is using, so the prices are the same

Link to comment
Share on other sites

I would really, really appreciate the option to select shipping based on country alone and not needing the state.

I already kind of do this by using CSS to hide the state selection dropdown from the "Choose shipping and payment method" area and have no problems with accurate shipping information as all of my carriers are defined only by country and never by state. My "Choose shipping and payment method" section looks like this:

image.png.06cfc773cd8dfec94cf6aed4a6fb98d3.png

 

 

The problem is that after I go to the next section I get this:

image.png.2f376a45c51570267a842a5e9ad9bbac.png

 

Considering the customer didn't select a state (and it's often the wrong state displayed...) it looks very strange. It would also be odd for me to ask the customer their state at this point as every state will have the same shipping options for my situation.

 

I guess doing this would ideally affect the shipping address section as well since it separates addresses by state too:

image.png.be40aa194b66af500607a04abfdc8d42.png

 

Ideally this would become:

image.png.14a93746404423a752019bb7536da55f.png

 

 

Since the above is already how Chex works for countries that do not have states defined in the TB database it doesn't seem like it would be a super difficult change to implement. If the merchant chooses to calculate shipping based only on country then the Chex system could just display the "Shipping to" destination and shipping addresses for all countries in the same way:

image.png.01e2029c1a32a2c47bc372b69b8cf9f7.png

 

In the Chex back office just a simple toggle would be required to change between "Country only" and "Country & State". Then in the front office this could be used to determine how options are displayed to the user. The actual shipping cost calculation system would remain the same.

Link to comment
Share on other sites

I found an other problem with this module and the Panda theme, duplicate images/products in the drop down cart. Uninstalled the checkout module and the problem is still there in de drop down cart in the Panda theme. Is this problem caused by the "Cart block mod" module of the Panda theme?? I did a test with the Niara theme and found no problem with the checkout module.

 

Edited by Kleijn36
Link to comment
Share on other sites

5 hours ago, Kleijn36 said:

I found an other problem with this module and the Panda theme, duplicate images/products in the drop down cart. Uninstalled the checkout module and the problem is still there in de drop down cart in the Panda theme. Is this problem caused by the "Cart block mod" module of the Panda theme?? I did a test with the Niara theme and found no problem with the checkout module.

I have also encountered this issue occasionally. But unfortunately this is not the issue in this module, but in blockcart module. I'm not sure if this is related to Panda only, or if it impacts other themes as well. 

When chex module makes changes to the cart (adds new products, changes carrier, etc) it calls ajaxCart.refresh() function (if exists). This function is defined by blockcart module. Or it can be redefined by theme. This method is fully responsible for fetching new cart state from the server, and update block cart view. In some cases it does the job correctly, but sometimes it does not.

Link to comment
Share on other sites

7 hours ago, datakick said:

I have also encountered this issue occasionally. But unfortunately this is not the issue in this module, but in blockcart module. I'm not sure if this is related to Panda only, or if it impacts other themes as well. 

When chex module makes changes to the cart (adds new products, changes carrier, etc) it calls ajaxCart.refresh() function (if exists). This function is defined by blockcart module. Or it can be redefined by theme. This method is fully responsible for fetching new cart state from the server, and update block cart view. In some cases it does the job correctly, but sometimes it does not.

I see the same behavior in the Warehouse theme

Link to comment
Share on other sites

On 10/27/2019 at 11:59 AM, haylau said:

If we enable gift wrapping the check box does not appear in the checkout module - anyone else?

image.png.f6572c7ec77f6b9cac0504351db898ab.png

@datakick Just me then?

 

Also, I want to change the product title in the cart to be product reference. I think I have found the code to do this. But if I change it I will have to remember to change the code everythime the module is updated. Is there a better / correct way of making changes so they stay between updates?

Link to comment
Share on other sites

47 minutes ago, haylau said:

I think I have found the code to do this. But if I change it I will have to remember to change the code everythime the module is updated. Is there a better / correct way of making changes so they stay between updates?

You need to try and create a module override, or I believe if you are using 1.1.x bleeding edge, you can change the authors name in the module, then tb will not update it.

Link to comment
Share on other sites

15 hours ago, haylau said:

@datakick Just me then?

No, this is a bug. Unfortunately not easy to fix -- that's because it's another entry item that can affect total price. I'll try to fix this issue in one of the upcoming versions. Thanks for reporting it 

15 hours ago, haylau said:

Also, I want to change the product title in the cart to be product reference. I think I have found the code to do this. But if I change it I will have to remember to change the code every time the module is updated. Is there a better / correct way of making changes so they stay between updates?

I believe you are talking about modifying \Chex\Manager::getCart() method, right? 

Well, there doesn't exists any way to override this file. Thirtybees allow you to override only module primary file (chex.php), but it's not possible to override other classes in the module. 

So, unfortunately, answer to your question is "no, there isn't any better way to do this". You will have to apply this modification manually every time you update the module. And hope that I'll implement your request soon 🙂 

  • Like 1
Link to comment
Share on other sites

3 hours ago, datakick said:

I believe you are talking about modifying \Chex\Manager::getCart() method, right? 

 

Corrrect. I just changed one line so that the product reference is shown instead of the title

'name' => $prod['reference'],

Not a programmer and I am sure that is not an elegant way to do this, but it works 🙂

Is it possible to add more detail there? I can't see how and where this info is actually displayed?

We currently have weight, current stock and availability shown

image.png.93cab78c8ed94ef7e2dbd40f32e5877e.png

 

Is it possible to add ANY of that here?

 

image.png.ea6a9fb263edf5439f5f3af1f43bb33d.png

 

I am happy to do some leg work if you can point me to the necessary files to modify - or is it just too deep in the script rather than tpls and phps?

Link to comment
Share on other sites

  • 2 weeks later...
On 10/30/2019 at 10:27 AM, haylau said:

Corrrect. I just changed one line so that the product reference is shown instead of the title

'name' => $prod['reference'],

Not a programmer and I am sure that is not an elegant way to do this, but it works 🙂

Is it possible to add more detail there? I can't see how and where this info is actually displayed?

We currently have weight, current stock and availability shown

image.png.93cab78c8ed94ef7e2dbd40f32e5877e.png

 

Is it possible to add ANY of that here?

 

image.png.ea6a9fb263edf5439f5f3af1f43bb33d.png

 

I am happy to do some leg work if you can point me to the necessary files to modify - or is it just too deep in the script rather than tpls and phps?

@datakick What do you think? is this possible for me to do? Or if too tricky is it something we could hire you to do ? The current stock level is the main thing, after that the instock/out of stock message. Weight is not really important

Link to comment
Share on other sites

38 minutes ago, haylau said:

@datakick What do you think? is this possible for me to do? Or if too tricky is it something we could hire you to do ? The current stock level is the main thing, after that the instock/out of stock message. Weight is not really important

At the moment it's not possible, because the product name is treated as a string, and escaped properly. For this to work, I would have to modify the (minified) js code and remove the escaping. Then you could enter any html content you need. It does, however, have slight security risks.

If you need this, I can prepare a special module build for you with this modification. And then you can test if you can achieve what you need. 

Link to comment
Share on other sites

I have already changed the code to replace name with reference code. That is fine. It is the current stock level that we need (and in stock out of stock availability notices ) that we need. Especially stock quantity

because we allow purchase of out of stock products this is essential. We show it on product page but in the cart is the main place where Customers  would actually take note

 

 

  • Like 1
Link to comment
Share on other sites

Hi,  at the moment i am trying Chex for my 1.0.8, which is still in progress, but we will go live in this year.  Thank you for the great module, it is really a nice thing. 

After some tests on different computers, tablets and smartphones, i will change the following:   the rows are too wide in space when you enter 'personal details',   it would be much better for customers to have all (or as much as possible)  data on one screen.  This can be done easily when we can make the space between the rows smaller.

I am not an CSS specialist,  so maybe you can tell me where and how to do?   Maybe this would be a general thing which you can think about?  Picture is also added: 

 

chex_change1.jpg

Link to comment
Share on other sites

@DRMasterChief

You could try adding this code to preferences > custom code

/* change min distance between boxes on checkout */

.chex-input {
    flex-grow: 1;
    width: 100%;
    min-height: 63px;
}

The relevant line is Min-height and 63 seems to be the lowest to have an effect, but you can play around with the numers

Link to comment
Share on other sites

21 hours ago, haylau said:

@DRMasterChief

You could try adding this code to preferences > custom code


/* change min distance between boxes on checkout */

.chex-input {
    flex-grow: 1;
    width: 100%;
    min-height: 63px;
}

The relevant line is Min-height and 63 seems to be the lowest to have an effect, but you can play around with the numers

Hello and thank you!

I have found the following and i think it points to my idea:

 

in the file  \chex\views\css  find the following  (in  0.6.3  version it is line 448)

.chex-input {
  flex-grow: 1;
  width: 100%;
  min-height: 92px;
}

-- so you are right  🙂  and with changing the min-height to e.g. 63px   the space between the rows is much smaller,   nice  ! 

 

Link to comment
Share on other sites

I am putting this question here because I am using CHEX but it may be nothing to do with CHEX. I have never seen this and can't see how this is even possible so just looking for possible reasons

New customer created an order using CHEX. Their account (user@newcustomer.com) has THREE addresses. All address have the same address alias. Is that even possible? But that is not the main question

Customer created the order and we shipped it to the delivery address on the order. And it has not arrived. When we look back at the order  it has two DIFFERENT address. One of the addresses matches the address in the customer account but the other address (yes, the delivery address) is totally odifferent. Infact it is a different country AND this is the main point the address is actaully linked to a different customer account user@oldcustomer.com) 

So basically new customer has entered one adddress and a different address belonging to a different customer has been inserted into the order automatically. 

I know this is not possible. I could not do it manually if I tried so has anyone come across this kind of glitch before??

 

Link to comment
Share on other sites

16 minutes ago, haylau said:

I am putting this question here because I am using CHEX but it may be nothing to do with CHEX. I have never seen this and can't see how this is even possible so just looking for possible reasons

New customer created an order using CHEX. Their account (user@newcustomer.com) has THREE addresses. All address have the same address alias. Is that even possible? But that is not the main question

Customer created the order and we shipped it to the delivery address on the order. And it has not arrived. When we look back at the order  it has two DIFFERENT address. One of the addresses matches the address in the customer account but the other address (yes, the delivery address) is totally odifferent. Infact it is a different country AND this is the main point the address is actaully linked to a different customer account user@oldcustomer.com) 

So basically new customer has entered one adddress and a different address belonging to a different customer has been inserted into the order automatically. 

I know this is not possible. I could not do it manually if I tried so has anyone come across this kind of glitch before??

 

I have encoutered similar issue once, but not on front office. When I created order manually in back offce, something went wrong and addresses belonging to two different customers were used. I'm sure at the time I hit save it showed correct address, though...  So my question to you is: Are you sure that the order was already wrong at the creation time? Maybe you modified it in back office, and something went wrong from there...

Link to comment
Share on other sites

Thanks for the reply. I am 99.99% certain there was no back office changes. The time frames do not match because of the time lapsed between some automated events that are times. But surely not even possible in the back office to change address from a different customer.

Just checked again and even more weird. The two customer accounts were created within an hour of each other with no other accounts or orders taken in between.

Almost as though something was cached

But we do not have any caches switched on at all (strangely they make our site slower)

Guess we put it down to one of those things and keep an eye on it. Perhaps somehow a delay with payment processor otifications? Both were stripe

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...