Gdzie mam umieścić kod w JS dla Facebook Pixel, aby działał on prawidłowo? Gdzie go nie umieszczę w plikach .tpl to generuje mi błąd, jak umieszczam korzystając z pola Javascript w panelu admina sklepu jest to samo. Mamy ten kod na innych stronach (nie opartych na Clickshop) i działa on prawidłowo, tylko z ClicK Shop jest problem, więc kod jet prawidłowy na 100%. Ten kod ma być na wszystkich podstronach serwisu Kolejna sprawa, to jak kod JS umieścić dla wybranej podstrony sklepu? np. http://www.sklep.platinumfitness.pl/pl/p/Matrix-kreatynowy-Creatine-Z3-160kaps-Beltor/452 Poniżej kody jakie muszę zaimplementować na sklepie. ID zastąpione xxxx Dla każdej podstrony sklepu: Code: <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', 'xxxxxxxxxxxxxxx'); fbq('track', "PageView");</script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=164529210611950&ev=PageView&noscript=1" /></noscript> Kod dla wybranej podstrony sklepu np. karty zakupowej produktu <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', 'xxxxxxxxxxxxxxx); fbq('track', 'ViewContent'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=164529210611950&ev=PageView&noscript=1" /></noscript>
No faktycznie bez tego kodu zawartego w noscript działa (bez <script></script> to umieszczałem tam ) Teraz tylko może jeszcze jakiś pomysł jak ten drugi kod co podałem dodać do wybranych podstron np. samych podstron z produktami albo tylko dla wybranych produktów ?.
Jeśli to zadziała to ok. Prawdę mówiąc sam jeszcze nie kombinowałem, z tym drugim kodem :] Rozumiem, że jeśli podobny kod JS zamieszczę w opisie podstrony co się pokazuje po dokonaniu zakupów w sklepie (ma zbierać statystyki zakupów) to z tym także nie powinno być problemów? Sorki za takie może banalne pytania ale wolę się dowiedzieć za wczasu, bo trochę mi się góra irytuje jak sklep dostaje czkawki gdy coś co powinno zadziałać, jednak nie działa :].
Mam jeszcze jeden problem związany z tym FB Pixel i clickshop, otóż potrzebuję zamieścić kod, aby zbierał dane z dodania produktu do koszyka. Kod oczywiście w JS jak podany powyżej różniący się jedną zmienną. Nie może być to kod karty koszyka, bo on będzie zliczał wejścia w pusty koszyk, musi byćto dodanie do koszyka, czyli to okienko w ajaksie najlepiej co się pojawia po dodaniu produktu do koszyka. Jakieś pomysły gdzie można umieścić ten kod? Kod nie może się pojawiać z wiadomych względów na wszystkich podstronach sklepu.
W tym artykule: https://pomoc.home.pl/baza-wiedzy/j...y-wyswietlane-podczas-finalizacji-zamowienia/ opisywaliśmy jak dodać dodatkowe moduły dla poszczególnych kroków w koszyku. Być może to podpowie Ci jak umieścić ten kod. Jeśli zadziała on dla opisu, to być może analogicznie dodany jako moduł i wstawiony w wybrany krok zakupów (1-4) będzie działał analogicznie.
Tylko, że w tym przykładzie to kod znajduje się bezpośrednio w koszyku, a to jak pisałem będzie go zliczało nawet jak koszyk jest pusty. Ja potrzebuję zliczanie podczas dodania produktu do koszyka czyli najlepiej odnośnie tego okienka co się wyświetla po dodaniu produktu, pokliknięciu w button do koszyka, jeszcze przezd wybraniem złuż zamówienie lub kontynuuj zakupy. Chodzi dokładnie o to aby zliczac akcje dodania do koszyka a nie wyświetlania samego koszyka, który może być i pusty.
Tak jeszcze pomyślałem że jakąś opcją jest mozłiwość zablokowania możłiwości wyświetlania koszyka jak nie ma w nim produktów. Chodzi o to aby wtedy nie bylo możliwości kliknięca w koszyk. Da się to jakoś prosto zrobić ? PS. Dobra problem ten już rozwiązałem przeprogramowując całkowicie to menu koszyk tak, aby do koszyka można było wejść jedynie gdy zawiera jakieś produkty Został mi jeszcze jeden kod do dodania, z którym nie powinno być problemu jak sądzę i jak wszystko będzie ok, to temat będzie do zamknięcia.
Bardzo ciekawa modyfikacja. Czy możemy liczyć, że podzielisz się taką informacją na forum? Taka modyfikacja może się przydać dla potomnych. Możliwość blokady wejścia do koszyka, gdy jest on pusty, jest bardzo ciekawą modyfikacją, która może być przydatna przy wielu przypadkach.
Tak modyfikacją się podzielę. Co do bezpośredniego wejścia to niestety tego nie da się przeskoczyć jako że ta opcja musi działać w przypadku usunięcia produktów z koszyka (tu jednak produkty były dodane, więc zliczenie tego jest jak najbardziej prawidłowe). Zakładam jednak, że mało kto, o ile będzie, wpisywał ręcznie adres pustego koszyka. Poniżej modyfikacja Do podmiany w pliku body_head.tpl od linii 72 zaraz pod {dynamic} zawartość <div></div> Code: <div class="basket right{if 0 == $user->basket->countProducts()} empty-basket{/if}"> {if 0 == $user->basket->countProducts()} <a href="/" title="{translate key='Cart'}" class="count"> <img src="{baseDir}/public/images/1px.gif" alt="" class="px1"> <span class="countlabel"> <span>{translate key="Cart"}:</span> <b> ({translate key="empty"}) </b> </span> </a> {else} <a href="{route key='basket'}" title="{translate key='Cart'}" class="count"> <img src="{baseDir}/public/images/1px.gif" alt="" class="px1"> <span class="countlabel"> <span>{translate key="Cart"}:</span> <b class="sum">{currency value=$user->basket->sumProducts(false)}</b> <b class="count">(<span>{$user->basket->countProducts()}</span>)</b> </span> </a> {/if} </div> Kilka uwag. Kod oczywiście można bardziej dopracować między innymi przenosząc klasę formatującą z url do np. <span class="count"> Mi jednak zależało na czasie i nie chciało się już dalej przerabiać tego kawałka kodu. Można także całkowicie zablokować pusty koszyk ale uważam, że nie warto, bo jest on używany jak wspomniałem po usunięciu produktu z koszyka i dobrze jakby informacja jaka się tam pojawia po jego usunięciu została, aby klient wiedział, że operacja się powiodła.
Walczę teraz z dodaniem pixela AddToCart. Chciałbym aby działał po kliknięciu przycisku dodaj do koszyka (a nie po otwarciu jego strony). FB na stronie https://developers.facebook.com/doc...product-ads/product-audiences/v2.8#setuppixel podaje takie info: Code: If the event needs to be fired on button click and there is no separate page that loads: <!-- The below method uses jQuery, but that is not required --> <button id="addToCartButton">Add To Cart</button> <!-- Add event to the button's click handler --> <script type="text/javascript"> $( '#addToCartButton' ).click(function() { fbq('track', 'AddToCart', { content_ids: ['1234'], content_type: 'product', value: 2.99, currency: 'USD' }); }); </script> Jak zaimplementować powyższe i jak powinien wyglądać kod dla zliczania produktów (content_ids w koszyku? Dla widoku kategorii (product/tableofproducts.tpl) mam działający kod: Code: {literal} <script> fbq('track', 'ViewCategory', { content_ids: {/literal}[{foreach from=$products item=x}'{$x->getIdentifier()}',{/foreach}]{literal}, content_type: 'product', currency: 'PLN' }); </script> {/literal} Działa ale bez value, nie mogę dojść jak zsumować poszczególne wartości: Code: value: {/literal}{foreach from=$products item=product name=prodlist}{$product->stock->stock->price},{/foreach}{literal} gdyż pixel chce mieć sumę, a nie jak w tagu Google pojedyncze wartości. Dla widoku produktu (product/index.tpl): Code: {literal} <script> fbq('track', 'ViewContent', { content_ids: '{/literal}{$product->product->product_id}{literal}', content_type: 'product', value: {/literal}{if $product->specialOffer}{currency float=true value=$product->defaultStock->getSpecialOfferPrice()}{else}{currency float=true value=$product->defaultStock->getPrice()}{/if}{literal}, currency: 'PLN' }); </script> {/literal} Tu wszystko ładnie działa... Czyli na chwilę obecną potrzebuje info jak zaimplementować AddToCart dla przycisku dodaj do koszyka (onclick) oraz jak obliczać sumę produktów w koszyku. Dla Purchase (integracje własne) mam: Code: <script> fbq('track', 'Purchase', { content_ids: {products} '{products.product_id}', {/products} content_type: 'product', value: {float_sum_noship}, currency: 'PLN' }); </script> Tylko jeszcze do końca nie sprawdziłem jego poprawności. Czy ktoś może pomóc?
Działający u mnie kod pixela Purchase: Code: <script> fbq('track', 'Purchase', { content_ids: [{products}'{products.product_id}',{/products}], content_type: 'product', value: {float_sum_noship}, currency: 'PLN' }); </script> Jeżeli ktoś wczytałby się w post #14 i odpowiedział głównie na temat implementacji pixela AddToCart na kliknięcie "Do koszyka"...
@Słoik napisz proszę o tym w nowym wątku, opisz w nim proszę wszystko dokładnie oraz podaj proszę link do wskazanego przez Ciebie posta. Postaram się skonsultować opisaną przez Ciebie kwestie ze specjalistami ds. Click Shop.