Pliki cookie pomagają nam udostępniać nasze usługi. Korzystając z tych usług, zgadzasz się na użycie plików cookie. Więcej informacji
Shoper.pl - zaawanasowane analizy za pomocą API w arkuszu kalkulacyjnym

2014-06-28

Sz@rk Biznes posiada wbudowany profesjonalny arkusz kalkulacyjny obsługujący pliki Excel. Wiemy już, że bezpośrednio z arkusza możemy otwierać i edytować produkty ze sklepu internetowego Shoper.

W tym dokumencie zademonstrujemy nowy sposób wykorzystania Sz@rk API i WebApi z poziomu arkusza kalkulacyjnego. Wykonamy arkusz z dynamiczną analizą sklepu internetowego za pomocą własnych funkcji dodanych do arkusza!


Arkusz dostępny jest w zakładce Narzędzia/Arkusz kalkulacyjny


W zakładce Plik wybieramy opcję Funkcje C#. Program otwiera edytor z kodem C# z domyślną definicją klasy.


W Edytorze definiujemy dowolną liczbę własnych funkcji, które następnie można wykorzystać w komórkach arkusza kalkulacyjnego analogicznie do funkcji standardowych. Funkcje użytkownika dają nam dostęp do baz SQL oraz sklepów internetowych Shoper za pośrednictwem Sz@rk API.

Z dokumentu Shoper - statystyki (Dashboard) wiemy jak otrzymać podstawowe informacje udostępnione przez webapi shoper. Teraz zaprezentujemy opcję budowania własnych statystyk bezpośrednio w Arkuszu kalkulacyjnym, który do tego idealnie się nadaje.


Na zdjęciu widać obliczenia z zamówień Shoper dla podanego statusu zamówienia. W dwóch komórkach arkusza użyto funkcji UDF("OrdersCount"; x) zwracającej ilość zamówień, w dwóch kolejnych funkcji UDF("OrdersTotal"; x) zwracających wartość TOTAL zamówień.


Podczas bieżącej pracy z arkuszem, nie ma potrzeby otwierania zakładki z edytorem i kodem C#. Program ładuje zapisany skrypt automatycznie.

Poniżej prezentujemy pełny kod C# do wykonania tych obliczeń:

using System;
using System.Data;
using System.Drawing;
using TGSoft.UI;
using TGSoft.Data;
using TGSoft.Utils;

namespace Szark
{
    public class CustomFunctions
    {
        private TGSoft.Data.Shoper.Order orders;
        
        public CustomFunctions(SSController sender)
        {
            var iApi = TGSoft.Data.Shoper.ApiManager.GetApi(1);
            orders = new TGSoft.Data.Shoper.Order() { Engine = iApi.Api };
        }
        
        public int OrdersCount(object status_id)
        {
            orders.OpenFilter(new string[] { "status_id" }, new object[] { status_id });
            return orders.RecordCount;
        }

        public double OrdersTotal(object status_id)
        {
            orders.OpenFilter(new string[] { "status_id" }, new object[] { status_id });
            return orders.SUM("total");
        }
    }
}
	

Uwaga! Parametrem metody GetAPi(id) jest id rekordu definicji sklepu internetowego. Zastosowana w przykładzie metoda SUM() będzie dostępna w kolejnej aktualizacji programu.


Wynik obliczeń w arkuszu kalkulacyjnym


Dla sprawdzenia, widok zamówień zgrupowanych wg statusu, odczytanych w zakładce Shoper/Zamówienia. Kolorem żółtym podświetlono sumy obliczone w arkuszu kalkulacyjnym.


To tylko mały przykład. W rzeczywistości arkusz może posiadać wiele obliczeń zarówno ze sklepów internetowych jak i baz SQL. W jednym arkuszu możemy jednocześnie analizować kilka sklepów Shoper i wykonywać raporty porównawcze pomiędzy sklepami a danymi zapisanymi w różnych bazach danych.

W zastosowanym przykładzie, funkcje pobierają dane bezpośrednio ze sklepu internetowego. Aby odświeżyć widok z aktualnymi danymi sklepu, wystarczy nacisnąć przycisk [Oblicz] lub klawisze CTRL+F9.

Dynamiczne arkusze z zastosowaniem własnych funkcji może nam przygotować dowolny informatyk znający podstawy składni C# lub posiadający intuicję w kopiowaniu gotowych przykładów :)