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
Sz@rk Biznes – automatyzacja Sklepu internetowego Shoper

2012-11-14

Do zmian w sklepie internetowym służy panel administratora, który umożliwia wykonywanie pojedynczych operacji (edycji) wybranych rekordów. Co zrobić w sytuacji gdy potrzebujemy zmienić wiele rekordów? I dodatkowe utrudnienie, zmiana ma dotyczyć określonych pól spełniających wymagane warunki.

Do wykonania takiego zadania potrzebny jest programista, który sprawnie opanował WebAPI Shoper’a.

Zadanie jest również do wykonania przez zaawansowanego użytkownika programu Sz@rk Biznes.

Uruchom program DEMO z naszej strony: http://programy.tgsoft.pl/szarkbiznesdemo.zip

Login: DEMO hasło: demo

Przejdź do opcji Sz@rk/API skrypty C# i wykonaj projekt „Aktualizacja cen

Okno po uruchomieniu programu

Zgodnie z informacją otwieramy sklep za pomocą podanego adresu i sprawdzamy ceny

Wykonujemy obliczenia (aktualizację cen) za pomocą przycisku <Wykonaj>.Po zakończeniu ponownie otwieramy sklep i widzimy nowe ceny (większe o 15%) dla tych samych produktów:

Cały projekt został wykonany za pomocą Sz@rk API, którego mechanizmy dostępne są dla użytkownika. W tym przykładzie wykonaliśmy tylko zmianę cen dla określonej kategorii, ale możemy wykonać dowolne obliczenia i warunki, które zmodyfikują określone rekordy i pola. Na potrzeby tego przykładu nie chcieliśmy komplikować załączonego kodu.

Jak to zostało zrobione?

Projektowanie formatki w Sz@rk Designer

Implementacja

A poniżej pełny kod C#.

Zmiana cen zawarta jest w kilku liniach programu w metodzie: UpdateProducts()

namespace Szark
{
    using System;
    using System.Windows.Forms;
 
    public partial class Form1 : DevExpress.XtraEditors.XtraForm
    {
        private TGSoft.Data.Shoper.WebApi api;
        private TGSoft.Data.Shoper.Products products;
 
        public Form1(object sender)
        {
            this.InitializeComponent();
 
            simpleButton1.Click += simpleButton1_click;
            linkLabel1.LinkClicked += linkLabel1_LinkClicked;
            this.FormClosing += Form1_FormClosing;
        }
 
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (api != null && api.Logged)
            {
                api.Logout();
            }
        }
 
        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            System.Diagnostics.Process.Start(linkLabel1.Text);
        }
 
        public void Main()
        {
            this.ShowDialog();
        }
 
        private void simpleButton1_click(object sender, EventArgs e)
        {
            simpleButton1.Enabled = false;
            TGSoft.Forms.UI.ShowWait();
            if (api == null)
                api = new TGSoft.Data.Shoper.WebApi(9);
 
            if (api.Login())
            {
                products = new TGSoft.Data.Shoper.Products();
                products.Engine = api;
                products.OpenFilter(newstring[] { "category.category_id" }, new Object[] { 22 });
 
                UpdateProducts();
            }
            simpleButton1.Enabled = true;
            TGSoft.Forms.UI.CloseWait();
        }
 
        private void UpdateProducts()
        {
            while (!products.EOF)
            {
                products.Edit();
 
                double price = Convert.ToDouble(products.FieldByName("price"));
                price = System.Math.Round(price * 1.15, 2);
                products.FieldByName("price", price);
                products.Post();
 
		products.Next();
            }
            products.Update();
        }
    }
}