Lots Of Traffic (10% CTR) But No Add To Carts Or Sales

Hey all.

I recently created a few campaigns for my Kalimba (musical instrument) store and I am getting a lot of traffic to my website and likes and shares on my ads. However, no one is even adding the products I’m advertising to their carts. I have tried optimising my ads for landing page views, adds to cart and purchases but I cannot seem to find out what is wrong. My advertising campaigns seem to be fine in terms of CTR (~10% CTR which seems really high), but perhaps the traffic quality is an issue? The problem isn’t just FB ads, either. I simply cannot seem to convert into purchases (store has been up since start of August, 1,069 sessions, 35 adds to cart, 11 checkouts and only 1 purchase).

Another possibility could be my actual website. Would anyone be able to check my website and see if there is anything that is wrong?

Thank you!

Website: https://kckalimbas.com
SEMrush

 

ajax – Woocommerce apply discount to cart’s total price

I added an input field used by users to inform a specific membership number coming from an other site. So only users from this other website will have the discount, that’s the reason why I don’t want to use coupon.

So I’m using AJAX to validate this number and then apply a 10% discount on the total cart’s price. The problem is I can’t find how to update the total. I tried to trigger the “update cart” button and use woocommerce_before_calculate_totals hook to update the price but it is not even called.

Obviously, no hook or filter are exectuted inside my AJAX’s action function. I have tested with a simple filter to add a class to the body and it doesn’t work inside my action function but works perfectly outside. I put some flags to see if my function was called by AJAX et it does!

My JS :

(function($) {
    $("body").on("click", ".updateCart", function(e) {
        e.preventDefault();
        var form = $('#cartAjaxTcs');
        var value = form.serialize();
        $.ajax({
            type:'POST',
            data: {
                action: 'test',
                tcs_number: value
            },
            url: ajaxurl,
            success: function(value) {
                jQuery("(name='update_cart')").removeAttr('disabled');
                jQuery("(name='update_cart')").trigger("click");
                console.log(value);
            },
            error:function(){
                console.log('error');
            }
        });
    });
})( jQuery );

My PHP :

add_action( 'wp_ajax_test', 'test' );
add_action( 'wp_ajax_nopriv_test', 'test' );

//This works well! If I put the same filter in my 'test' function it doesn't work
add_filter( 'body_class', function( $classes ) {
    return array_merge( $classes, array( 'test-class' ) );
} );

function test()
{
    //This is displayed in console
    echo'test-init';
    if (!DOING_AJAX){
        return;
    }
    
    //This does't work
    //add_filter( 'body_class', function( $classes ) {
    //  return array_merge( $classes, array( 'test-class2' ) );
    //} );
    
    //The callback function isn't called
    //add_action( 'woocommerce_before_calculate_totals', 'update_price' );

    //This is displayed in console
    echo 'test';


    wp_die();
}

//Not called
function update_price(){
    echo 'update';
}

Maybe I go in a wrong direction to update that price. I tried to change it directly using WC() class like this (inserting it in my ‘test’ function), but it doesn’t work neither :

$total = (int) WC()->cart->get_totals()('total'); 
$total *= 0.9;
WC()->cart->set_total($total);

That’s the reason why I planned to use “update cart” button and its hook. Any idea?

magento2.3.4 The number of shopping carts is not displayed

PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function MagentoQuoteModelQuoteInterceptor::setExtensionAttributes(), 0 passed in /Applications/MAMP/htdocs/mgtcs/development/vendor/magento/framework/DataObject.php on line 207 and exactly 1 expected in /Applications/MAMP/htdocs/mgtcs/development/generated/code/Magento/Quote/Model/Quote/Interceptor.php:1398
Stack trace:
#0 /Applications/MAMP/htdocs/mgtcs/development/vendor/magento/framework/DataObject.php(207): MagentoQuoteModelQuoteInterceptor->setExtensionAttributes()
#1 /Applications/MAMP/htdocs/mgtcs/development/generated/code/Magento/Quote/Model/Quote/Interceptor.php(2000): MagentoFrameworkDataObject->setDataUsingMethod(‘customer_prefix’, NULL)
#2 /Applications/MAMP/htdocs/mgtcs/development/vendor/magento/framework/DataObject/Copy.php(368): MagentoQuoteModelQuoteInterceptor->setDataUsingMethod(‘customer_prefix’, NULL)
#3 /Applications/MAMP/htdocs/mgtcs/development/vendor/magento/framework/DataObject/Copy.php(245): MagentoFrameworkDataObje in /Applications/MAMP/htdocs/mgtcs/development/generated/code/Magento/Quote/Model/Quote/Interceptor.php on line 1398

Why can't you use airport baggage carts when you queue for the immigration counter at an airport?

To slow you down.

Most of the ways and facilities between the gate and picking up your checked baggage are designed to slow you down so that waiting at the various points is kept to a minimum.

By extending the routes and taking people with their own luggage, the congestion on immigration etc. is distributed, which makes it easier to make pre-immigration observations and minimize the backlog of immigration.

There are many considerations that affect the flow of passengers through airports at various points, and the goals of the airport do not necessarily have to match your goals. People tend to perceive inconvenience in different ways – the queue for immigration is often separated from the time to their arrival in people's minds, forcing people to spread out and arrive gradually instead of gathering and coming up arriving once to manipulate people's feelings because they think the immigration line is shorter …

magento 1.8 – Standard condition in promotions-> Price rules for shopping carts

Our business plans to support shipping to multiple countries.

Previously, the advertising rules did not have a shipping country attribute under the terms, as this was not required. Now we have to distinguish between rules that apply in all countries and rules that only apply in certain countries.

Now we want to include a default condition for the shipping country with the default value of India as new rules are created to make it clear to the user who is creating rules.

How is it possible and where must the changes be made to set the shipping country as the default attribute?

magento2 – How do I get a custom sales order attribute in shopping cart api / V1 / carts / mine?

I created a custom attribute called delivery_date in my sales_order table. Now I want to get this attribute in my shopping cart API so that I can get the delivery_date along with the quote_id in response.

Please help for the same>

Thank you in advance.

Manufacturer / Module / Setup / InstallSchema.php

Namespace manufacturer  module  setup;

Use Magento  Framework  Setup  InstallSchemaInterface.
Use Magento  Framework  Setup  SchemaSetupInterface.
Use Magento  Framework  Setup  ModuleContextInterface.

The InstallSchema class implements InstallSchemaInterface
{
Install public function (SchemaSetupInterface $ setup, ModuleContextInterface $ context)
{
$ setup-> startSetup ();

$ tableName = $ setup-> getTable (& # 39; sales_order_grid & # 39;);

$ tableNameSales = $ setup-> getTable (& # 39; sales_order & # 39;);
$ tableNameQuote = $ setup-> getTable (& quot; quote & # 39;);

// Check if the table already exists

$ Columns = [
            'delivery_date' => [
            'type' => 'datetime',
            'nullable' => true,
            'comment' => 'Delivery Date',
            ],
& # 39; # 39 & NO_OF_DAYS; => [
            'type' => MagentoFrameworkDBDdlTable::TYPE_INTEGER,
            'nullable' => true,
            'comment' => 'Number of Days',
            ],
& # 39; # 39 & no_of_crew; => [
            'type' => MagentoFrameworkDBDdlTable::TYPE_INTEGER,
            'nullable' => true,
            'comment' => 'Number of Crew',
            ],
& # 39; port & # 39; => [
            'type' => MagentoFrameworkDBDdlTable::TYPE_INTEGER,
            'nullable' => true,
            'comment' => 'Port',
            ]
        ];

$ connection = $ setup-> getConnection ();

foreach ($ split as $ name => $ definition) {
$ connection-> addColumn ($ tableName, $ name, $ definition);
$ connection-> addColumn ($ tableNameSales, $ name, $ definition);
$ connection-> addColumn ($ tableNameQuote, $ name, $ definition);
}

$ setup-> endSetup ();
}
}