The McKinnon Collection (2024)

Free U.S. Shipping Over $49

  • Best Sellers
  • Bags

    • Best Sellers

    • Backpacks

    • Travel Bags

    • Laptop Bags

    • Collapsible Bags

    • Bag Bundles

    • Sale

  • Camera

    • All Camera

    • Best Sellers

    • Camera New Arrivals

    • Camera Slings

    • Camera Accessories

    Shop Peter McKinnon Collection Luma Camera CollectionDesigned with Peter McKinnon
  • Luggage

    • All Luggage

    • Carry-On Luggage

    • Check-In Luggage

    Shop All Luggage Shop Carry-On Luggage
    • Shop All

    • Jacket

    • Pant

    • T-Shirt

    • Jogger

  • Accessories

    • All Accessories

    • Best Sellers

    • Travel Accessories

    • Camera Accessories

    • Everyday Accessories

    • Garment Bags

    Shop All Accessories Shop Packing Cubes
  • Log in
  • Best Sellers
  • Backpacks

    Travel Bags

    Laptop Bags

    Collapsible Bags

    Bag Bundles

    Sale

    Shop Best Sellers
    Shop BackpackBest For Daily Use
  • All Camera

    Best Sellers

    Camera New Arrivals

    Camera Slings

    Camera Accessories

    Shop Peter McKinnon Collection
    Luma Camera CollectionDesigned with Peter McKinnon
    Camera Accessories
  • All Luggage

    Carry-On Luggage

    Check-In Luggage

    Shop All Luggage
    Shop Carry-On Luggage
    Shop Check-in Luggage
  • Shop All

    Jacket

    Pant

    T-Shirt

    Jogger

    Outset JacketJacket to Pillow in Seconds
    Outset T-ShirtBuy 3 or More, Save 15%
  • All Accessories

    Best Sellers

    Travel Accessories

    Camera Accessories

    Everyday Accessories

    Garment Bags

    Shop All Accessories
    Shop Packing Cubes
    Shop Toiletry Bag
account Log in icon-search Search

icon-cartCart

The McKinnon
Camera Collection

Your new favorite Camera Bags

The Mckinnon Collection

All Camera

Best Seller

McKinnon Camera Pack 35L $399.99

Best Seller

McKinnon Camera Pack 25L from $299.99

Best Seller

McKinnon Sling 8L $159.99

Staff Favorite

McKinnon Cube Pack 21L $124.99

New

Luma Camera Pack 18L $219.99

New

Luma Camera Sling 12L $139.99

New

Luma Camera Sling 9L $119.99

New

McKinnon Tech Organizer $69.99
McKinnon Accessory Case $54.99
McKinnon Battery Case $29.99
McKinnon Memory Card Case $29.99
McKinnon Filter Case $44.99

Camera Accessories

Staff Favorite

McKinnon Cube Pack 21L $124.99
McKinnon Cube - Large $69.99
McKinnon Cube - Small $44.99

New

McKinnon Tech Organizer $69.99
McKinnon Accessory Case $54.99
McKinnon Battery Case $29.99
McKinnon Memory Card Case $29.99
McKinnon Accessory Straps (Set of 2) $19.99
McKinnon Camera Pack 25L Divider Kit $39.99
McKinnon Camera Pack 35L Divider Kit - Long $59.99
McKinnon Camera Pack 35L Divider Kit - Short $44.99
McKinnon Filter Case $44.99
McKinnon Camera Pack 35L Rain Cover $29.99

New

Luma Shock Cord 2-Pack $9.99
Camera Bags Best Sellers
Camera Bags New Arrivals

The McKinnon Collection

'); $n.before($o); } }); } addSlider($nodes){ const $t = this; $t.wait('[data-nm009-class="nm009-upsell-slider-container"]', ($n)=>{ if(!$t.hasNode('[data-nm009-class="nm009-upsell-slider"]')){ const $o = $t.j('

'); const $ceil = Math.ceil(($nodes.length - 2) / 2); for(let $c = 0; $c < $ceil; $c++){ const $li = $t.j('

  • '); $nodes.each(($i, $l)=>{ if($i < ($nodes.length - 2)){ if($c === (Math.floor($i / 2))){ const $clone = $t.j($l).children('.upcart-upsell-item-card').clone(true); $clone.attr('data-nm009-slide-clone-index', $i); $t.j($l).attr('data-nm009-slide-index', $i); if($clone.find('select').length > 0){ $clone.find('select').on('change', function($e){ $e.preventDefault(); const $form = $t.j(this).closest('form'); const $href = $form.prev().find('a').attr('href'); const $query = ($href.indexOf('?') !== -1) ? $href.split('?') : [$href]; const $pathname = $query[0].split('/'); const $handle = $pathname[$pathname.length - 1]; $t.debug($handle + ' ' + $t.j(this).val()); $t.j.ajax({ url: '/products/' + $handle + '/.js', type: 'GET', dataType: 'json', success: ($r)=>{ $t.each($r.variants, ($variant, $vc)=>{ if($variant.id === parseInt($form.find('select').val())){ const $img = ($variant.featured_image !== null && typeof($variant.featured_image.src) === 'string') ? $variant.featured_image.src : $r.images[0]; $t.debug('img ' + $img); $form.prev().find('.upcart-upsell-item-price').html('$' + ($variant.price * .01).toFixed(2)); $form.closest('.upcart-upsell-item-card').find('.upcart-upsell-item-image').attr('src', $img); } }); }, error: ($x, $s, $e)=>{ console.log($x); console.log($s); console.log($e); } }); }); $clone.find('input[type="submit"]').on('click', function($e){ $e.preventDefault(); $t.debug($t.j(this).closest('form').find('select').val()); const $d = { items: [ {id: parseInt($t.j(this).closest('form').find('select').val()), quantity: 1} ] }; $t.cart.add($d, ()=>{ $t.debug('added upsell product'); window.upcartRegisterAddToCart(); }); }); $clone.find('input[type="submit"]').attr('type', 'button'); } else{ $clone.find('input[type="submit"]').on('click', function($e){ $e.preventDefault(); $t.j('[data-nm009-slide-index="' + $i + '"]').find('input[type="submit"]').eq(0).trigger('click'); }); $clone.find('input[type="submit"]').attr('type', 'button'); } $li.append($clone); } } }); $o.append($li); } $n.append($o); $t.slider.init('[data-nm009-class="nm009-upsell-slider"]', $t.sliderID, {addWrap: true, attrs: [ {name: 'display',value: 1}, {name: 'move-slide', value: 1}, {name: 'current-slide',value: 1}, {name: 'display-mobile',value: 1}, {name: 'current-slide-mobile',value: 1}, {name: 'move-slide-mobile',value: 1}, {name: 'controls',value: 1}, {name: 'pagination',value: 0}, {name: 'touch',value: 1} ]}) } }); } } class $cookiesClass{ constructor(){} set($n, $v, $exd){ const $d = new Date(); $d.setTime($d.getTime() + ($exd * 24 * 60 * 60 * 1000)); const $exp = 'expires=' + $d.toUTCString(); document.cookie = $n + '=' + $v + ';' + $exp + ';path=/'; } get($nm){ const $n = $nm + '='; const $decode = decodeURIComponent(document.cookie); const $ca = $decode.split(';'); for(const $ck of $ca){ if($ck.indexOf($n) !== -1){ const $s = $ck.split('='); return $s[1]; } } return ''; } check($n){ const $ck = this.get($n); return ($ck !== '') ? true : false; } } class $sliderClass{ constructor($j = jQuery, $hasNode = ()=>{}, $each = ()=>{}){ this.j = $j; this.hasNode = $hasNode; this.each = $each; }; init($selector, $id = 'sliderID', $params = {addWrap: true, attrs: []}){ const $t = this; $t.j($selector).attr('data-slider-id', $id); if($params.addWrap){ const $o = $t.j('

    '); $t.j($selector).before($o); $o.append($t.j($selector)); } else{ $t.j($selector).parent().attr('data-slider-wrap', $id); } $t.tagSliderItems($selector); $t.updateAttrs($id, $params.attrs); $t.addStyle($id); } tagSliderItems($selector){ const $t = this; $t.j($selector).children().each(($i, $l)=>{ $t.j($l).attr('data-slider-item', $i); }); } updateAttrs($id, $attrs){ const $t = this; if($attrs.length > 0){ $t.each($attrs, ($p, $c)=>{ $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-' + $p.name, $p.value); $t.updateAttr($id, $p); }); } } updateAttr($id, $param){ const $t = this; switch($param.name){ case 'controls': if($param.value === 1){ $t.addControls($id); } break; case 'pagination': if($param.value === 1){ $t.addPagination($id); } break; case 'touch': if($param.value === 1){ $t.addTouchEvents($id); } break; default: break; } } addControls($id){ const $t = this; const $wrap = $t.j('[data-slider-wrap="' + $id + '"]'); const $next = $t.j(''); const $prev = $t.j(''); $next.on('click', function($e){ $e.preventDefault(); $t.next($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.next($id, true); } }); $prev.on('click', function($e){ $e.preventDefault(); $t.prev($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.prev($id, true); } }); $wrap.after($next); $wrap.after($prev); } next($id, $mobile = false){ const $t = this; const $m = ($mobile) ? '-mobile' : ''; const $current = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m); const $active = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-move-slide' + $m); const $tabs = Math.ceil($t.j('[data-slider-id="' + $id + '"]').children('[data-slider-item]').length / parseInt($active)); const $display = parseInt($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-display' + $m)); const $end = ($display > 1) ? $tabs - $display : $tabs; const $next = (parseInt($current) + 1 <= $end) ? parseInt($current) + 1 : 1; $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m, $next); $t.updatePagination($id, $next, $mobile); } prev($id, $mobile = false){ const $t = this; const $m = ($mobile) ? '-mobile' : ''; const $current = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m); const $active = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-move-slide' + $m); const $tabs = Math.ceil($t.j('[data-slider-id="' + $id + '"]').children('[data-slider-item]').length / parseInt($active)); const $display = parseInt($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-display' + $m)); const $end = ($display > 1 && $tabs > 1) ? $tabs - $display : $tabs; const $next = (parseInt($current) - 1 >= 1) ? parseInt($current) - 1 : $end; $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide' + $m, $next); $t.updatePagination($id, $next, $mobile); } addPagination($id){ const $t = this; const $current = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide') || 1; const $mCurrent = $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile') || 1; const $wrap = $t.j('[data-slider-wrap="' + $id + '"]'); const $page = $t.j('

    '); $t.j('[data-slider-id="' + $id + '"]').children('[data-slider-item]').each(($i, $l)=>{ let $a = ($i + 1 === parseInt($current)) ? ' class="pagination-item-active"' : ''; if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $a = ($i + 1 === parseInt($mCurrent)) ? ' class="pagination-item-active pagination-item-mobile-active"' : $a; $a = ($i + 1 === parseInt($current) && $i + 1 === parseInt($mCurrent)) ? ' class="pagination-item-active pagination-item-mobile-active"' : $a; } const $li = $t.j('

  • '); $li.on('click', function($e){ $e.preventDefault(); $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide', $t.j(this).attr('data-slider-pagination-item')); $t.updatePagination($id, $t.j(this).attr('data-slider-pagination-item')); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile', $t.j(this).attr('data-slider-pagination-item')); $t.updatePagination($id, $t.j(this).attr('data-slider-pagination-item', true)); } }); $page.append($li); }); $wrap.append($page); } updatePagination($id, $next, $mobile = false){ const $t = this; if($mobile){ $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item]').removeClass('pagination-item-mobile-active'); $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item="' + $next + '"]').addClass('pagination-item-mobile-active'); } else{ $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item]').removeClass('pagination-item-active'); $t.j('[data-slider-pagination-container="' + $id + '"] [data-slider-pagination-item="' + $next + '"]').addClass('pagination-item-active'); } } addTouchEvents($id){ const $t = this; const $n = document.querySelector('[data-slider-id="' + $id + '"]'); let $xTouch = null; $n.addEventListener('touchstart', function($e){ $xTouch = $e.touches[0].clientX; }); $n.addEventListener('touchmove', function($e){ if(!$xTouch){return;} let $xUp = $e.touches[0].clientX; let $xDif = $xTouch - $xUp; if($xDif > 0){ $t.next($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.next($id, true); } } else{ $t.prev($id); if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $t.prev($id, true); } } $xTouch = null; }); } addStyle($id){ const $t = this; let $l = ''; const $i = $t.j('[data-slider-id="' + $id + '"] > [data-slider-item]').length; for(let $c = 0; $c < $i; $c++){ const $off = $c * -100; $l = $l + '[data-slider-current-slide="' + ($c + 1) + '"]{' + 'transform: translateX(' + $off + '%);' + '}'; } if(typeof($t.j('[data-slider-id="' + $id + '"]').attr('data-slider-current-slide-mobile')) !== 'undefined'){ $l = $l + '@media all and (max-width: 767px) { '; for(let $c = 0; $c < $i; $c++){ const $off = $c * -100; $l = $l + '[data-slider-current-slide-mobile="' + ($c + 1) + '"]{' + 'transform: translateX(' + $off + '%);' + '}'; } $l = $l + '} '; } if($t.hasNode('[data-slider-css="' + $id + '"]')){ const $s = $t.j('[data-slider-css="' + $id + '"]'); $s.html(''); $s.html($l); } else{ const $s = $t.j('

    '); $s.html($l); $t.j('body').append($s); } } } class $shopifyCartClass{ constructor($j){ this.cartcount = 0; this.j = $j; } add($data, $callBack){ const $t = this; if($data.items.length > 0){ $t.get(($r)=>{ $t.cartcount = $r.item_count; console.log($t.cartcount); $t.j.ajax({ url: '/cart/add.js', type: 'POST', data: $data, dataType: 'json', success: ()=>{ $t.get(($rq)=>{ if($t.cartcount < $rq.item_count){ $callBack($rq); } }); }, error: ($x, $s, $e)=>{ console.log($x); console.log($s); console.log($e); } }); }); } } get($callBack){ const $t = this; $t.j.ajax({ url: '/cart.js', type: 'GET', dataType: 'json', success: ($rq)=>{ $callBack($rq); }, error: ($x, $s, $e)=>{ console.log($x); console.log($s); console.log($e); } }); } } const $djar_nm009_v1 = new $djar_nm009_v1_class(); $djar_nm009_v1.run();});

  • The McKinnon Collection (2024)
    Top Articles
    How to Check Your AT&T Data Usage on iPhone and iPod | Digital Seo Guide
    View Usage Detail Reports
    Copart - Denver South Photos
    Biden is offering some migrants a pathway to citizenship. Here's how the plan will work
    Coming to Xbox Game Pass: Exoprimal, Grand Theft Auto V, Techtonica, and More - Xbox Wire
    What Is The Difference Between A City And A Town?
    Lilhoneybee Stripchat
    Hounds Town Brunswick Reviews
    63 Golden Retriever Facts You (Probably) Didn’t Know
    Golden Retriever Archives
    Latest Posts
    Data texts not showing me the number on my detailed billing | AT&T Community Forums
    Data, Text & Talk Usage Details | AT&T Community Forums
    Article information

    Author: Trent Wehner

    Last Updated:

    Views: 5885

    Rating: 4.6 / 5 (76 voted)

    Reviews: 91% of readers found this page helpful

    Author information

    Name: Trent Wehner

    Birthday: 1993-03-14

    Address: 872 Kevin Squares, New Codyville, AK 01785-0416

    Phone: +18698800304764

    Job: Senior Farming Developer

    Hobby: Paintball, Calligraphy, Hunting, Flying disc, Lapidary, Rafting, Inline skating

    Introduction: My name is Trent Wehner, I am a talented, brainy, zealous, light, funny, gleaming, attractive person who loves writing and wants to share my knowledge and understanding with you.