Shoper.pl udostępnia zasoby sklepu internetowego za pomocą WebApi. Interfejs umożliwia sterowanie sklepem bez potrzeby logowania poprzez Panel Administracyjny ze strony internetowej.
Sz@rk korzysta z tego mechanizmu do importu i przetwarzania Zamówień, co zostało opisane w poprzednich dokumentach. Tym razem przedstawimy sposób na dostęp do sklepu z poziomu kodu dostępnego dla użytkowników Sz@rk.
W przykładzie zademonstrujemy dynamiczny dostęp do wybranego zamówienia i wydruk wg własnego projektu, który użytkownik może dowolnie przygotować za pomocą wbudowanego generatora raportów.
Szczegółowe informacje na temat Sz@rk API znajdziesz na naszym blogu , tutaj opiszemy klasy opracowane na potrzeby sterowania sklepem internetowym.
Na tle kodu zarejestrowanego przy użyciu Sz@rk Designer widać uruchomioną aplikację, która pobiera Zamówienie nr 26 ze Sklepu Internetowego i jest gotowa do wydruku.
Podgląd wydruku Zamówienia
Projektowanie wyglądu formularza Zamówienia. Generator dostępny jest w systemie Sz@rk bez dodatkowych opłat!
Poniżej przedstawiamy pełny kod programu wykorzystujący Sz@rk API do wykonania tego zadania:
namespace Szark
{
using System;
using System.Windows.Forms;
public partial class Form1 : System.Windows.Forms.Form
{
private TGSoft.Data.Shoper.WebApi api;
private TGSoft.Data.ApiDataTable order;
private TGSoft.Data.ApiDataTable products;
private TGSoft.Data.ApiDataTable payments;
private TGSoft.Data.ApiDataTable shipping;
private int order_id;
public Form1(object sender)
{
this.InitializeComponent();
button3.Click += button3_click;
button1.Click += button1_click;
this.FormClosing += Form1_FormClosing;
api = new TGSoft.Data.Shoper.WebApi(9);
button1.Enabled = api.Login();
if (button1.Enabled)
{
payments = new TGSoft.Data.Shoper.Payment();
payments.Engine = api;
shipping = new TGSoft.Data.Shoper.Shipping();
shipping.Engine = api;
}
}
public void Main()
{
this.ShowDialog();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (api != null && api.Logged)
{
api.Logout();
}
}
private void button1_click(object sender, EventArgs e)
{
order_id = Convert.ToInt32(numericUpDown1.Value);
order = new TGSoft.Data.Shoper.Order();
order.Engine = api;
order.Open(order_id);
dataGridView1.DataSource = order.DataSource;
button3.Enabled = order.RecordCount > 0;
}
private void button3_click(object sender, EventArgs e)
{
products = new TGSoft.Data.Shoper.OrderProducts(order_id);
products.Engine = api;
products.Open();
TGSoft.Data.FastReportDlg fr = new TGSoft.Data.FastReportDlg("shoper", "order");
fr.RegisterData(order.Table, "Order");
fr.RegisterData(products.Table, "Products");
payments.Open(order.FieldByName("payment_id"));
if (payments.RecordCount == 1)
fr.SetParameter("opis1", payments.FieldByName("name"));
shipping.Open(order.FieldByName("shipping_id"));
if (shipping.RecordCount == 1 )
fr.SetParameter("opis2", shipping.FieldByName("name"));
fr.ShowDialog();
fr.Dispose();
}
}
}
Kilka słów komentarza do powyższego kodu.
TGSoft.Data.Shoper.WebApi api = new TGSoft.Data.Shoper.WebApi(9);
api.Login();
- Tworzymy instancję klasy interfejsu WebApi, parametrem konstruktora jest Id sklepu internetowego. Program pobiera dane logowania z definicji Sklepu.
- Logujemy się do Sklepu.
TGSoft.Data.ApiDataTable order = new TGSoft.Data.Shoper.Order();
rder.Engine = api;
rder.Open(order_id);
- Tworzymy instancję klasy Zamówienia
- Ładujemy żądane Zamówienie
order.OpenNew(order_id);
- ładuje nowe zamówienia od podanego numeru
order.Open();
- ładuje wszystkie zamówienia