Tag: development

Shopify Script, Buy Product from vendor X get Product Y for free

In shopify I was looking for a way to get a free product when buying from a specific vendor, I came up with below script.
In our case we also needed the vendor’s product to be at > $400 for the gift product to be free, you can offcourse remove that if statement.
Unfortunately you can’t add products to the cart with shopify scripts (yet?) so you can leave adding the product up to the customer, or add the product with javascript in the frontend.

You can remove the puts statements, I though I’d leave them so you can see how to debug something like this.

discounted_product = 2228740609
products_seen = false;

puts('loop over all products, and check if we have the required vendor')
Input.cart.line_items.each do |line_item|
  product = line_item.variant.product
  puts(product.vendor.downcase)
  if(product.vendor.downcase == 'vendorname')
    
    if(line_item.variant.price > Money.new(cents: 40000))
      puts('found a product matching vendor, and matching minimum price of $400')
      products_seen = true;
    end
  end
end

if(products_seen)
  puts('Check if the gift product is in the cart, and update its price to 0')
  Input.cart.line_items.each do |line_item|
    product = line_item.variant.product
    next unless product.id == discounted_product
      puts('they will only get 1 free, not unlimited items')
      updated_price = line_item.line_price.cents - (line_item.line_price.cents / line_item.quantity)
      line_item.change_line_price( Money.new(cents: updated_price) , message: "Free Shoetrees")
  end
end

Output.cart = Input.cart

 

Large databreach, how to minimize online vulnerabilities, and improve responsetime

Last week I found a data breach in a large companies website, exposing over 2 million customer records (name, address, email, phone number)
It’s always a though choice, do I call it in and risk getting sued, or leave it? Since this was quite a big leak, which I more or less stumbled upon (think in the lines of ‘this looks odd, what happens if I try and change this’) , I just went ahead and stated my intensions very clearly in my messages, and hoped they would see it would benefit them to use my report, and fix the problem as soon as possible.

Large databreach, how to minimize online vulnerabilities, and improve responsetime

Last week I found a data breach in a large companies website, exposing over 2 million customer records (name, address, email, phone number)
It’s always a though choice, do I call it in and risk getting sued, or leave it? Since this was quite a big leak, which I more or less stumbled upon (think in the lines of ‘this looks odd, what happens if I try and change this’) , I just went ahead and stated my intensions very clearly in my messages, and hoped they would see it would benefit them to use my report, and fix the problem as soon as possible.

Using papertrail logging in Slim Framework v3 with MonoLog

I was looking for a good way to group logs from different webapplications into one managable place, without too much configuration work on the different webservers, since some run on shared hosting, and some have different setups.

I came across Paper Trail App A hosted log management tool, which gives you the ability to aggegrate logs from different places into one location, and here you can filter and group different webservers together, and search the log history.