Skip to content

Instantly share code, notes, and snippets.

@TeamDijon
Last active June 22, 2024 09:27
Show Gist options
  • Save TeamDijon/8990bb2ad67a036d1f9aecfebb18f829 to your computer and use it in GitHub Desktop.
Save TeamDijon/8990bb2ad67a036d1f9aecfebb18f829 to your computer and use it in GitHub Desktop.
Testing of the new "cart filters" issued by Shopify
{% # Cart filters testing %}
{% liquid
# A small liquid snippet to compare the two new filters from what was possible before
# See https://shopify.dev/docs/api/liquid/filters/cart-filters for reference
# Quite redundant in my opinion as this is basically sugar but maybe they'll find their audience
assign targetProduct = all_products['product-handle']
assign productId = targetProduct.id
assign targetVariant = targetProduct.selected_or_first_available_variant
assign variantId = targetVariant.id
assign oldVariantInCartQuantity = cart.items | where: 'variant_id', variantId | map: 'quantity' | sum
assign newVariantInCartQuantity = cart | item_count_for_variant: variantId
assign oldProductInCartList = cart.items | where: 'product_id', productId
assign newProductInCartList = cart | line_items_for: targetProduct
assign oldVariantInCartList = cart.items | where: 'variant_id', variantId
assign newVariantInCartList = cart | line_items_for: targetVariant
echo 'Product ID: ' | append: productId | append: '<br>'
echo 'Variant ID: ' | append: variantId | append: '<br><br>'
echo 'item_count_for_variant filter test:' | append: '<br>'
echo 'Quantity of variant #' | append: variantId | append: ' in cart: ' | append: oldVariantInCartQuantity | append: '<br>'
echo 'Quantity of variant #' | append: variantId | append: ' in cart: ' | append: newVariantInCartQuantity | append: '<br><br>'
echo 'line_items_for filter for products test:' | append: '<br>'
echo 'List of product #' | append: productId | append: ' items in cart: ' | append: oldProductInCartList | append: '<br>'
echo 'List of product #' | append: productId | append: ' items in cart: ' | append: newProductInCartList | append: '<br><br>'
echo 'line_items_for filter for variants test:' | append: '<br>'
echo 'List of variant #' | append: variantId | append: ' items in cart: ' | append: oldVariantInCartList | append: '<br>'
echo 'List of variant #' | append: variantId | append: ' items in cart: ' | append: newVariantInCartList | append: '<br><br>'
%}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment