Bitrix24'ün kutulu sürümüne ilişkin belgeler. Kurulum sihirbazını tamamlama

Bitrix Çerçevesi - Projelerin (web siteleri ve kurumsal portallar) oluşturulması ve yönetilmesi için teknolojik çekirdek (platform). Platform, ürünün bir kopyasını (lisansını) kullanarak sınırsız sayıda proje oluşturmanıza, sistemin çekirdeğini ve veritabanını sunucuda tek bir kopyaya yerleştirmenize olanak tanır.

Açık şu an Eski çekirdeğin tüm yetenekleri D7'de kopyalanmamıştır. Ancak yeni D7 çekirdeği Bitrix Çerçevesi yavaş yavaş eskisinin yerini alıyor. Eski bir çekirdeğin kullanılması IDE'den bir uyarıyla sonuçlandı: Yöntem/sınıf kullanımdan kaldırıldı, o zaman yöntemleri kullanmanız gerekir.

Çeşitli nedenlerden dolayı API belgeleri tüm yöntemleri kapsamayabilir. Nasıl çalıştığını anlamak için bazen gerçek program koduna bakmak daha iyidir. Bunun için kullanabilirsiniz ücretsiz modül Pazar Yeri'nden: .

Not: Herhangi bir sayfanın adresine #examples ekleyerek, varsa bir örneğe hızlıca gidebilirsiniz. (Bu, CHM formatındaki dokümantasyon dosyalarında çalışmaz.)


Varlık sürümleri

Bitrix Çerçevesi sürekli gelişmektedir. Yeni işlevler ortaya çıkıyor, bazıları geçerliliğini yitiriyor ve işlevlerde yeni parametreler beliriyor. Ancak oldukça fazla sayıda proje güncellenmiyor. Programlamanın çalışmasını kolaylaştırmak için belgeler, sınıfın, yöntemin, parametrenin, olayın ürünün hangi sürümünde mevcut olduğunu (mevcut olduğunu) gösterir.

Sürümler iki yerde listelenir: başlıkta ve tablolarda. Yöntem geçerliyse başlık yalnızca üründe göründüğü sürüm numarasını içerecektir. Yöntem güncel değilse geçerli olduğu sürüm aralığı da belirtilecektir.

Tablolar, varlığın üründe göründüğü sürümü yalnızca görünümü sınıfın, yöntemin kendisinin vb. ortaya çıkma anıyla çakışmaması durumunda gösterir. Aşağıdaki çizimde: COURSE_ID parametresi yöntemle birlikte (yani 5.1.0'dan itibaren) ve CHAPTER_ID parametresi yalnızca 9.5.4 sürümünden itibaren göründü.

Bir parametre (genellikle bu parametreler anlamına gelir) ürünün geliştirilmesiyle değiştiyse, açıklamasında buna karşılık gelen bir not bulunacaktır. (Örneğin: x.x.x sürümünden önce parametreye ***** adı veriliyordu).

Örnek

Notlar:

  • İşaret Modası geçmiş bir yöntem, parametre veya anahtar için, herhangi bir uzantı veya düzeltme olmayacağından kullanılmasının tavsiye edilmediği anlamına gelir.
  • Versiyonların kurulumu henüz tam olarak tamamlanmadı, bu yönde çalışmalar devam ediyor.

"Bitrix", 2001-2019, "1C-Bitrix", 2019

1C-Bitrix'teki çevrimiçi mağazanın sistemle entegrasyonu Bitrix.Marketplace'teki sistem modülü kullanılarak yapılabilir.

Kurulum sırasında modül, mevcut siparişleri sisteme yüklemenize yardımcı olacaktır.

Kurulumdan sonra modül şunları yapacaktır:

  • 1C-Bitrix'ten sisteme yeni siparişler yükleyin;
  • 1C-Bitrix'te yapılan değişiklikleri dikkate alarak mevcut siparişlere ilişkin verileri güncellemek;
  • yeni siparişleri ve müşterileri sistemden 1C-Bitrix'e yükleyin;
  • Sistemde yapılan değişiklikleri dikkate alarak mevcut siparişlere ilişkin verileri güncelleyin (örneğin, siparişin durumu sistemde değiştirildi, siparişteki mal sayısı vb., bu değişiklikler 1C-Bitrix'e de yansıtılacaktır) ;
  • Kullanıcı tarafından bir siparişin çevrimiçi ödemesine ilişkin bilgilerin sisteme gönderilmesi.

Güncelleme sırasında değiştirilen kodu kaybetmeden eklenti sınıflarını özelleştirmek de mümkündür. Değiştirilen kodu uygulamak için gerekli sınıfa sahip dosyanın bir kopyasını bitrix/php_interface/retailcrm dizinine yerleştirmeniz gerekir.

Eklenti aşağıdaki dosyaları özelleştirme yeteneğine sahiptir:

RestNormalizer.php
Logger.php
Client.php
RCrmActions.php
RetailCrmUser.php
PerakendeCrmICML.php
RetailCrmInventories.php
RetailCrmPrices.php
RetailCrmCollector.php
PerakendeCrmUa.php
RetailCrmEvent.php
RetailCrmHistory_v4.php
RetailCrmHistory_v5.php
RetailCrmOrder_v4.php
RetailCrmOrder_v5.php
ApiClient_v4.php
ApiClient_v5.php

Adları kullanılan API sürümünü içeren dosyaları özelleştirmek için, sürüm belirtilmeden bir adla dosyalar oluşturulur, örneğin - RetailCrmHistory.php.

Bitrix/php_interface/retailcrm dizininde sınıf içeren dosyanın bir kopyasını oluşturduktan sonra modül özel bir sınıf kullanacaktır; onun yöntemlerinde değişiklik yapabilirsiniz.

Bir çevrimiçi mağazanın sisteme kaydedilmesi

Kurulumdan önce çevrimiçi mağazanızı sistem örneğinize kaydedin (örneğin, demo sürümünde Yönetim > Mağazalar bölümü):

Çözümü 1C-Bitrix'e yükleme

  • Marketplace'teki çözüm sayfasında "Yükle"ye tıklayın ve çevrimiçi mağazanızın adresini girin:

  • Modülü 1C-Bitrix Güncelleme Sistemi aracılığıyla indirin:

  • Modülü kurmaya başlayın:

Kurulum sihirbazı başlayacaktır.

Kurulum sihirbazı. Aşama 1

Adım 1.1'de sisteminizin adresini (örneğin, https://test.retailcrm.ru) ve sistemde daha önce oluşturduğunuz API anahtarını belirtmeniz gerekir:

Önemli! Bitrix'te yalnızca bir mağaza varsa 1. adım. Siteler atlanır.

Kurulum sihirbazı. Adım 1. Web Siteleri

1.Siteler adımında 1C-Bitrix'teki mağazalarınız ile sistem arasındaki yazışmaları ayarlamanız gerekmektedir.

Önemli! Sistemdeki tüm mağazalarınızın ortak bir API anahtarına sahip olması gerekir.

Kurulum sihirbazı. Adım 2

İkinci adımda çevrimiçi mağazanın değerleri ile sistem dizinleri arasındaki uyumu belirtmeniz gerekiyor. Modülün kendisi tipik durumlar için yazışmalar kurmaya çalışır. Modülün bunu yapamadığı durumlarda eşleşmeyi kendiniz belirtmeniz gerekir:

Sistemin çevrimiçi mağaza dizinlerine karşılık gelen gerekli dizin değerlerine sahip olup olmadığını kontrol edin. Yeterli sayıda yoksa kurulum sihirbazı sayfasını kapatmadan Yönetim bölümüne ekleyin:

Bundan sonra sihirbaz sayfasını yenileyin: yeni dizin değerleri yüklenmelidir.

Kurulum sihirbazı. Aşama 3

Üçüncü adımda modül, 1C-Bitrix alanları ile sistem arasındaki yazışmaları ayarlamanıza olanak tanır.

Önemli! Bir form varsa " geri bildirim"veya" 1 tıklamayla "siparişler ve bu veriler standart Bitrix siparişlerine girmiyorsa sisteme çekilmezler.

Ayrıca, eğer çalışıyorsanız tüzel kişiler, aşağıdaki ekran görüntüsünde gösterildiği gibi tüm alanları doldurmalısınız.

Kurulum sihirbazı. 4. Adım

Dördüncü adımda modül daha önce vermiş olduğunuz siparişleri sisteme yüklemenizi sağlar. Boşaltma biraz zaman alabilir (1000 sipariş yaklaşık 5 dakikada boşaltılır). Yükleme işleminin ilerlemesi bir ilerleme çubuğuyla gösterilecektir.

Gerekirse indirme işlemini duraklatabilir ve bir süre sonra tekrar devam ettirebilirsiniz.

Daha önce verdiğiniz siparişleri yükledikten sonra KPI Panelinde analitik raporları görebileceksiniz. Bu adımı gerçekleştirmenizi öneririz.

Kurulum sihirbazı. Adım 5

Beşinci adımda ürün kataloğunun yüklenmesi yapılandırılır. Bunu yapmak için aşağıdaki noktaları tamamlamanız gerekir.

1. Bilgi bloklarının ve özelliklerinin seçimi

Seçilen bilgi blokları sisteme yüklenecektir. Size yalnızca ürünleri içeren veya ticari tekliflerle bağlantılı bilgi blokları içeren bilgi bloklarından bir seçim sunulacaktır. Bilgi bloklarının seçimine paralel olarak aşağıdaki özellikleri seçebilirsiniz: ürün, üretici, renk, ağırlık, boyut - bunun için ilgili özelliğin depolanmasından sorumlu olan bilgi bloğu özelliğini belirtmeniz gerekir. Bir mülk seçmek isteğe bağlıdır.

2. Dosya yolu

Belirtilen yolda, dizin yapısını içerecek biçimde bir dosya oluşturulacaktır. Varsayılan yol - "/bitrix/catalog_export/retailcrm.xml". Yolu değiştirirseniz sistemde benzer bir kurulum yapmanız gerekecektir.

3. İhracatta teklif sayısını ayarlama

Kataloğu dışa aktarma ayarlarında, bir ürünün sahip olabileceği maksimum ticari teklif sayısını (50'den fazla varsa) girmeniz gereken "Bir ürün için maksimum ticari teklif sayısı" alanı vardır. Varsayılan olarak modül bir ürün için maksimum 50 ticari teklif hesaplar. Mağazada ürün başına 50'den az ticari teklif varsa bu ayar göz ardı edilebilir. Daha fazla takas teklifi varsa ve ayar belirtilmişse, isabetlerde çalışıyorsa ajanın kronlara aktarılması önerilir.

4. Boşaltma sıklığının seçilmesi

Aralarından seçim yapabileceğiniz üç seçenek olacaktır:

1. HAYIR- bu öğeyi seçtiğinizde kataloğun periyodik olarak yüklenmesi otomatik olarak yapılandırılmayacak ve her seferinde kataloğu kendiniz yüklemeniz gerekecektir.

Çevrimiçi mağazanızın ürün kataloğu çok nadiren değişiyorsa veya yükleme parametrelerini daha sonra yapılandırmak istiyorsanız bu seçenek yararlı olabilir.

2. Cron- bu öğenin seçilmesi, çevrimiçi mağaza web sitesinin çalıştığı sunucunun Cron hizmetine bağlanacak özel bir profilin otomatik olarak oluşturulmasına yol açacaktır.

Cron yardımcı programı çalışıyor arka plan ve belirli zamanlarda belirli görevleri yerine getirir.

Kataloğun çok büyük bir öğe içermesi durumunda bu öğenin seçilmesi yararlı olabilir ( 10.000'den fazla ürün). Bu öğe için özel dışa aktarma profilinin adını belirtmeniz gerekir.

3. Ajan. Bu durumda 1C-Bitrix'teki “Agents” teknolojisine bağlanacak özel bir profil de oluşturulacak ve yükleme gerçekleşecektir. günde bir kez otomatik olarak.

Aracı, belirli bir frekansta çalışan bir PHP işlevidir. Her sayfa yüklemesinin başlangıcında sistem, başlatılması gereken bir aracının olup olmadığını otomatik olarak kontrol eder ve gerekirse onu çalıştırır. Zaman alan yüklemeler için aracıların oluşturulması önerilmez; cron kullanmak daha iyidir.

Dizin şunları içeriyorsa bu seçenek en çok tercih edilir: 10.000'den az ürün, yükleme işlemi oldukça hızlı gerçekleşir ve bu, çevrimiçi mağaza web sitesinin hızını hiçbir şekilde etkilemez.

Geniş bir aralık olması durumunda ( 10.000'den fazla ürün), gerekli ek özelleştirme Cron'daki ajan. Bu öğe için özel dışa aktarma profilinin adını da belirtmeniz gerekir.

4. Anında boşaltma göstergesi

“Şimdi kaldır” bayrağının ayarlanması sonucunda, modül kurulumunun hemen ardından dizin yapısı yukarıdaki dosyaya boşaltılacaktır.

Kataloğu sistemdeki bir dosyaya yükledikten sonra Yönetim -> Mağaza -> Mağaza adı -> "Katalog" sekmesine giderek "Kataloğu ICML'den şimdi indir" kutusunu işaretlemeniz gerekmektedir. Bu durumda, dosyanın indirilmesi ve işlenmesi neredeyse anında başlar.

5. Profil adının belirtilmesi

Ürün kataloğunun yüklenmesini doğru bir şekilde ayarladıktan sonra Mağaza > Ayarlar > Veri dışa aktarma bölümünde yeni bir sistem dışa aktarma türü görünecektir; kurulum sırasında periyodik yükleme belirtilirse bir dışa aktarma profili de görünecektir.

Not:
İçin kendi kendini yapılandırma yükleme yaparak kendi ihracat profilinizi oluşturmanız mümkündür.

Kurulum sihirbazını tamamlama

Kurulumun sonunda 2 temsilci oluşturulacaktır: Bir temsilci sipariş geçmişini Bitrix'ten sisteme yükler, ikinci temsilci ise bir katalog oluşturur. Sipariş yükleme bir temsilci için yapılandırılmışsa siparişler, geçmişin çağrıldığı anda sisteme yüklenir. Diğer durumlarda siparişler bir etkinliğe bağlı olarak kaldırılır.

1C-Bitrix - sistem değişimi sırasında teslimat hizmetinin boşaltılması

1C-Bitrix'e bağlı eDost gibi birçok profile sahip otomatik teslimat hizmetleriniz varsa: Russian Post, EMS, DHL ve diğerleri, o zaman sistemde bu tür teslimat hizmetini yükleme yeteneğinden yararlanabilirsiniz.

Teslimat yöntemlerinin sistem tarafında yapılandırılması gerekir. Sistem modülü teslimat hizmetini Bitrix'e bağlamadan önce kurulduysa eksik teslimat yöntemlerinin sisteme manuel olarak girilmesi gerekecektir. Modül teslimat hizmetine bağlandıktan sonra kurulduysa, hizmetin kendisini boşaltmanın yanı sıra teslimat yöntemleri de otomatik olarak kurulacaktır. Yani her sipariş için teslimat maliyeti indirilecektir.

1C-Bitrix tarafında, teslimat servisini 1C-Bitrix sistemine bağladıktan sonra sistem modülü takıldıysa aşağıdaki ayarları yapmanız gerekir:

Git Yönetim > Ayarlar, "Dizin Ayarları" sekmesine gidin.

Teslimat yöntemlerinin yazışmalarını yapılandırın (önceden sistem tarafında yapılandırılmıştır). Ardından, "Teslimat hizmetlerini yükle" düğmesini tıklayın.

1C-Bitrix - sistem yükleme sıklığını ayarlama

Ürün kataloğunu güncellerken iki nokta vurgulanabilir:

İstemci tarafında katalog oluşturma (yml/icml formatında) ve

Sistem kataloğu her üç saatte bir indirir. Yüklenmesi gereken dosyanın yolu mağaza ayarlarında belirlenir - bölüme gitmeniz gerekir Yönetim > Mağazalar > Mağaza seç > Katalog sekmesi.

Sistem modülünü 1C-Bitrix'e kurduktan sonra yükleme için bir profil oluşturulur. Görmek için şu adrese gitmeniz gerekir: Masaüstü > Mağaza > Ayarlar > Veri Dışa Aktarma. Ekran görüntüsünde iki seçenek gösteriliyor:

Varsayılan,

Sistem dizini yükleniyor.

İkinci seçeneği seçerseniz, üzerine tıkladığınızda yükleme seçenekleri açılacaktır.

Frekans seçeneği olarak Agent seçilirse, Agent listesini görüntülemek için adresine gitmeniz gerekmektedir. Masaüstü > Ayarlar > Ürün Ayarları > Aracılar.

"Değiştir" veya "Yeni ekle"yi tıklarsanız, oluşturma görevinin çalıştırılma sıklığını atayabilir veya değiştirebilirsiniz.

1C-Bitrix - sistem değişimi sırasında veri senkronizasyonunun sıklığı

Sistem modülü, sisteminize bir ürün kataloğu yüklemenize ve düzenli olarak iki yönlü sipariş ve müşteri alışverişi gerçekleştirmenize olanak tanır.

Katalogdan verileri zamanında yükleyerek sistem yöneticileriniz ürünün bulunabilirliği hakkında güncel bilgilere sahip olacaktır. Bir ürünün sipariş edildiği ve bir süre sonra stokta kalmadığı ortaya çıkan bir durum ortaya çıkmayacaktır.

Sipariş değişimi, siparişlerin her iki yönde de yüklendiği bir veri senkronizasyonu işlemidir:

1C-Bitrix'ten sisteme:

  • Olaylara göre yükleme etkinse, 1C-Bitrix sisteminde bir sipariş oluştururken veya değiştirirken, sipariş anında sisteme yüklenecektir. Boşaltma acentesi seçilirse sipariş 15 dakika içerisinde sisteme yüklenecektir (mücbir sebepler olmadan bu mekanizmanın kullanılması tavsiye edilmez, çünkü bu durumda siparişler gecikmeli olarak ulaşacak ve bu siparişlere ilişkin güncellemeler aktarılmayacaktır.) sisteme).
  • Kullanıcı değiştiğinde ana veriler de anında sisteme yüklenecektir.

Sistemden 1C-Bitrix'e:

  • Sistemde yeni bir kullanıcı için sipariş oluşturduğunuzda sipariş 1C-Bitrix'e yüklenecek ve oluşturulacaktır. Yeni kullanıcı 1 ila 15 dakika aralığında.
  • Sipariş sayfasında sistemdeki adresi, teslimat maliyetini veya durumunu değiştirirseniz tüm bu değişiklikler 15 dakika içinde 1C-Bitrix'e yüklenecektir.
  • Sistemde ürün indirimlerini değiştirip ürün adetlerini değiştirirseniz bu 1C-Bitrix'te 1 ile 15 dakika arasında değişecektir.

Entegrasyon modülündeki değişiklikler

Sürüm 2.0

  • Entegrasyon modülü sürümü V2.0, 1C-Bitrix'i, içinde kurulu olan “Çevrimiçi mağaza (indirim)” modülü sürümü > 16 ile entegre etmek için tasarlanmıştır.
  • Artık modül API V4 aracılığıyla çalışmaktadır.
  • Entegrasyon modülü artık yeni 1C-Bitrix D7 çekirdeğini kullanıyor.
  • Artık müşteri ile ilgili değişiklikler (tam ad, e-posta, telefon) sistemden web sitesine de gönderilmektedir.
  • "Diğer Ayarlar" bölümündeki entegrasyon modülü ayarlarında sipariş numaralarının sistemden 1C-Bitrix'e çevrilmesi mümkün hale geldi. Yani, sistemde örneğin 12345R numaralı bir siparişi manuel olarak oluşturursanız, 1C-Bitrix'te aynı numaraya sahip bir sipariş oluşturulacaktır.
  • "Çevrimiçi mağaza (indirim)" modülü sürüm > 16'da, Bitrix geliştiricileri siparişin tamamına indirim uygulamaktan uzaklaşıp indirimleri yalnızca ürünler için bıraktığından, sistem şimdilik indirimleri ürünlerde kullanma olanağına da sahip değil. Tüm sipariş. İndirimleri yalnızca belirli sipariş öğeleri için ayarlayabilirsiniz.

Sürüm 2.1

  • Katalog dışa aktarımına ölçü birimleri eklendi.

Sürüm 2.2

  • Modül artık seçimli çeşitli API sürümlerini desteklemektedir.
  • API V5 desteği.
  • Bakiyeleri depoya göre boşaltma yeteneği eklendi.
  • Fiyat türlerini indirme yeteneği eklendi.
  • Temel Daemon Collector entegrasyonu eklendi.
  • Universal Analytics ile entegrasyon eklendi.
  • Veri değişikliğine yönelik yerleşik işlevlerin mantığı iyileştirildi.
  • Yerleşik perakendeCrmApiResult işlevi eklendi.
  • Değişiklik geçmişinin tetikleyici sürümü eklendi.

Sürüm 2.4

  • Yeni bir sipariş için ödemeyi kaydetmek amacıyla işlemciye bir çek eklendi.
  • İhracattaki ticari tekliflerin sayısı için ayar eklendi.
  • Satın alma fiyatı dönüşümü eklendi.
  • Çeviri dosyalarını değiştirme.
  • Sipariş özellikleri için sistemdeki değişiklikler kaldırılırken bir kontrol eklendi.
  • KDV yüklemesi eklendi.
  • Yükleme için fiyat türlerinin listesinin alınması düzeltildi. Bitrix'te mevcut tüm türler seçilebilir.

Diğer ayarlar

Sipariş ayarları

Merkezi işlem merkezinde oluşturulan sipariş numaralarının mağazaya iletilmesi

Sistemde bir emir oluşturulduğunda belirlenen kurallara göre kendine özgü bir numara üretir. Modülde bu ayar yapıldığında, ters senkronizasyon sırasında böyle bir siparişin numarası mağazaya iletilecektir.

Siparişlerin boşaltılması

  • Etkinliğe göre- siparişi kaydettiğinizde veriler sisteme girer;
  • Ajan- Yeni siparişler değişiklik geçmişi sistemden talep edilmeden önce gönderilir.

İstemci API sürümü

Artık modülün çalışacağı API sürümünü seçebilirsiniz. Seçim sistem sürümüne bağlıdır. En son sürümü seçmeniz önerilir.

Bakiyelerin depoya göre boşaltılmasını etkinleştir (depolar mevcutsa kullanılabilir)

Artık bakiyeleri periyodik olarak saha depolarından sistem depolarına boşaltabilirsiniz. Bunu yapmak için ihtiyacınız olan:

  • saha depolarını sistem depolarıyla karşılaştırın;
  • bakiyelerin yükleneceği sistem depolarını belirtin;
  • bakiyeleri yüklemek için gerekli malları içeren bilgi bloklarını seçin (sistem için katalog aktarımında belirtilenleri seçmeniz gerekir).

Yükleme, temsilci tarafından 1 saatlik sıklıkta (varsayılan olarak) gerçekleştirilir.

Bakiyelerin sisteme yüklenmesi için seçeneklerin etkinleştirilmesi gerektiğini lütfen unutmayın.

Ürünler için fiyat türlerinin yüklenmesini etkinleştirin (yalnızca birden fazla fiyat türü olması durumunda kullanılabilir)

Artık mağazadan periyodik olarak ek fiyat türlerini sisteme yükleyebilirsiniz. Bunu yapmak için ihtiyacınız olan:

  • site fiyat türlerini sistem fiyat türleriyle karşılaştırın;
  • ek fiyat türlerinin yükleneceği sistem mağazalarını belirtin;
  • ek fiyat türlerinin yüklenmesini gerektiren ürünleri içeren bilgi bloklarını seçin (sistem için katalog aktarımında belirtilenleri seçmeniz gerekir).

Yükleme, temsilci tarafından her 24 saatte bir (varsayılan olarak) gerçekleştirilir.

Demon Collector'ı etkinleştirin

Artık Collector Daemon'u ayarlar arayüzünden web sitesine ekleyebilirsiniz. Bunu yapmak için istediğiniz siteye uygun anahtarı belirtmeniz gerekir. Anahtar sistemde bulunabilir.

UA entegrasyonunu etkinleştir

Artık Universal Analytics entegrasyonunu ayarlar arayüzünden etkinleştirebilirsiniz (standart sipariş bileşeniyle doğru şekilde çalışır). İzleme eklemek istediğiniz her site için İzleme Kimliği ve Özel Parametre Dizinini doldurmanız gerekir.

Burada $order, sisteme gönderilecek sipariş verilerinin oluşturulan dizisidir ve $arFields, web sitesindeki sipariş alanlarının dizisidir. function perakendeCrmBeforeOrderSave($order) ( //Değişiklikleriniz $order değerini döndürür; //veya false değerini döndürür ve bu sipariş için sistemden yapılan değişiklikler dikkate alınmaz)

Burada $order, sistemden alınan değiştirilmiş sipariş verilerini içeren bir dizidir.

perakendeCrmAfterOrderSave işlevi

perakendeCrmAfterOrderSave - sistem geçmişinden alınan sipariş verilerinde yapılan değişikliklerin web sitesine kaydedilmesinden hemen sonra yürütülen bir işlev.

function perakendeCrmAfterOrderSave($order) ( //Değişiklikleriniz geri döner; )

Burada $order, sistemden alınan değiştirilmiş sipariş verilerini içeren bir dizidir.

İşlev perakendeCrmApiResult

perakendeCrmApiResult - sistem API'sinden yanıt alındıktan hemen sonra yürütülen bir işlev.

function perakendeCrmApiResult($methodApi, $res, $code) ( //Değişiklikleriniz geri döner; )

Burada $methodApi, API yönteminin adıdır, $res, doğru / yanlış isteğin sonucudur (başarılı veya başarısız istek), $code, API yanıt durum kodudur.

Bu işlevi kullanırken koddaki hataların site ile sistem senkronizasyonunu bozabileceğini lütfen unutmayın.

Yukarıda sıralanan araçlar herhangi bir nedenle yeterli gelmezse, modülü güncellerken bu değişiklikleri kaybetme riski olmadan gerekli değişiklikleri doğrudan modül kodunda yapabilirsiniz. Bunun için gerekli sınıfa sahip dosyayı /bitrix/php_interface/retailcrm/ dizinine kopyalayıp, içinde değişiklikler yapmanız gerekmektedir. Bu mekanizma, istemciler, siparişler, etkinlikler, katalog aktarımı ve diğer yardımcı mekanizmalarla çalışmak üzere sınıfların değiştirilmesini destekler.


Yer imi Özel görevlerürünle doğrudan çalışacak kişilere, yani yazılım ürünümüzü kullanan firmaların çalışanlarına yöneliktir.

Yönetim görevleri sekmesi, kutulu sürümü yönetecek kişiler için tasarlanmıştır. "Bitrix24".

Yer imi Dokümantasyon kutulu versiyona dayalı projelerin geliştiricilerine yöneliktir "Bitrix24".

Özel görevler

İdari görevler

Geliştiriciler için

Geliştirici belgeleri sistem API'sinin açıklamasıdır. Kullanıcı belgeleri, sistem bileşenlerinin ve ayarlarının açıklamasıdır.

Dokümantasyon hem çevrimiçi olarak hem de chm formatında bir dosya olarak mevcuttur. Daha güncel olduğu için online versiyonun kullanılması tavsiye edilir. chm dosyaları periyodik olarak güncellenir ve en son sürümler hakkında bilgi içermeyebilir.

Dikkat! Format dosyasının içeriğini göremiyorsanız .chm, o zaman bunun nedeni güvenlik ayarlarıdır işletim sistemi. Dosya özelliklerinde dosyanın görüntülenmesini engellemeyi kaldırmanız gerekir. Daha fazlasını okuyunSSS

Dokümantasyon referans bilgisidir. Acemi bir geliştiricinin sistemle çalışması yeterli değildir. Programlama ilkelerine hakim olmak Bitrix ÇerçevesiÖzel bir kurs size yardımcı olacaktır:

Kısa bir süre önce şirketimiz, bakım ve modifikasyon için 1C-Bitrix'te oldukça büyük bir çevrimiçi mağaza aldı. Proje birkaç ay önce ticari işletmeye alındı ​​ancak aynı zamanda bir takım ciddi sorunlar da vardı. Ayrıca müşteri, yeni işlevselliklerin mümkün olan en kısa sürede sonuçlandırılması görevlerini tamamlamayı planladı. Düzenleme görevi bana verildi verimli çalışma minimum saha kesintisi ve müşteri ihtiyaçlarının maksimum memnuniyeti ile projeye göre.

İlk veri:

  • 1C-Bitrix'te bir çevrimiçi mağaza var
  • Proje birkaç yaşında, ancak yalnızca birkaç ay önce site 1C-Bitrix'e devredildi
  • Günde 10-15 bin kişi katılıyor
  • Mağaza kataloğu yaklaşık 12.000 ürün öğesi içerir
  • Kesinti ve site kesintileri kabul edilemez
  • Proje altı ay içinde başka bir şirket tarafından geliştirildi:
    1. Tamamlanan işin yaklaşık %40'ına tekabül eden yaklaşık 100 paftalık teknik şartname bulunmaktadır.
    2. Proje dokümantasyonu yok
    3. Önceki geliştiricilerin neden belirli mimari çözümleri kullandıklarını anlama eksikliği.

Gelişim yazılım Genel olarak web projeleri, özel olarak ise yaklaşık 8 yıldır web projeleri üzerinde çalışıyorum. Bu süre zarfında çeşitli karmaşıklıktaki projelerle karşılaştım ve ilk bakışta görev bana çok zor gelmedi. Şirketimizde projelerin hayata geçirilmesinde kural olarak SCRUM metodolojisi kullanılmaktadır. Ondan uzaklaşmaya başladım.

Öncelikle erişim sağladım kaynak kodu proje. Yüzeysel olarak analiz edildi. Öncelikli görevler listesinde müşteriyle anlaşmaya varıldı. 3 geliştirici için bir geliştirme planı yaptım ve Gagarin'in dediği gibi haydi gidelim!

Sorun #1 – geliştiriciler her şeyin suçlusu

Genellikle olduğu gibi müşteri dışında herkes suçludur. Tasarımcı çok ağır bir düzen yaptı, barındırıcı yavaş çalışan bir sunucu sağladı, geliştiriciler her zaman hatalı ve bozuk bir web sitesi yaptı, yöneticiler geçiş yaptıktan sonra yapılmasını istemediğimiz bazı görevleri tamamladı eski versiyon 1C-Bitrix'teki sitede arama trafiğinde vb. keskin bir düşüş oldu. Durum net değil. Bir yandan asıl sorumluluk elbette geliştirici firmaya ait olmalı. Siteyle yapılan tüm eylemlerin sonuçlarını müşteriye iletmek ve sonuca hazırlanmak gerekiyordu. İşi yaparken bütünsel bir mimari önerin gelecek sistem ve kilometre taşları tamamlanana kadar takip edilecek bir kalkınma planı. İşlevselliği kapsamlı bir şekilde test edin ve çalışmayı gönderin. Öte yandan, müşterinin her şeyi kendisinin daha iyi bildiği bir durumla sık sık karşılaşıyorum, çünkü annesi bir zamanlar resim yapmıştı ve bu nedenle en iyi tasarımcı ve 7 yaşındaki oğlu SEO optimizasyonu konusunda oldukça bilgili çünkü tüm zamanını bilgisayarda GTA oynayarak geçiriyor.

Kimin suçlu, kimin haklı olduğuna karar vermek bize düşmez. Bu durumda önceki yüklenici oldukça tanınmış, güvenilir bir şirketti ve onların gelişimi hakkında kötü bir şey söyleyemem. Ve müşteri objektif olarak ürününe önem veriyor ve onu geliştirmeye çalışıyor. Nasıl olduğunu bilmiyorum, yüklenicinin müşteriye sağladığı analitik miktarının yetersizliğinde kendim için bir açıklama buldum.

Sonuç olarak:

  • Proje mantıksal sonucuna getirilmedi. Birçok görev yarıda bırakılır
  • Proje belgelenmemiştir. Bazı işlevlerin çalışması açık değildir. Yeni bir işlevsellik geliştirirken, eskiden işe yarayan ve yeni geliştiricinin varlığından şüphelenmediği işlevselliğin çalışmayı bıraktığı ortaya çıktı
  • Önceki icracı tarafından yazılan bazı kodların sıfırdan yeniden yazılması gerekiyor
  • Projenin amaçlanan mimarisi, çalışmanın ilk haftalarında/aylarında yeni yüklenici için net değildir. Bir modülün işlevselliğinin iyileştirilmesi, onunla hiçbir şekilde ilgisi olmayan bir modülün işlevselliğinin kaybolmasına neden olur.
  • Müşteri gergin, sanatçı gergin, ziyaretçiler mutlu değil, katılım azalıyor, satışlar düşüyor

Soruna tek bir çözüm görüyorum: Ürünü gerekli duruma getirmek için tüm site modüllerini kademeli olarak sistematik olarak tek tek temizleyin. Bazı hatalar ayrı görevlere dahil edilerek hemen tamamlandı, bazıları ise yeni işlevselliklerin geliştirilmesine paralel olarak düzeltildi. Sonuç olarak, her güncellemede hatalar derhal giderildikten sonra site daha iyi ve daha kararlı hale gelir.

Sorun #2 – paralel gelişme.

1C-Bitrix lisanslama politikası uyarınca, her web sitesi lisansı, sistemin 2 kopyasını kullanmanıza izin verir. Biri üretim tesisi, ikincisi ise geliştirme amaçlı. Sorun şu ki, geliştirme birkaç geliştirici tarafından (benim durumumda üç) sürekli olarak yürütülüyor. Klasik gelişim durumunda her şey basittir. Her geliştirici kendi modülü üzerinde çalışır. Daha sonra her modülün işlevsel testi gerçekleştirilir, tüm iyileştirmeler bazı sürüm kontrol sisteminin deposunda birleştirilir ve ardından hep birlikte test edilir (entegrasyon testi). Sonuç normal ise test versiyonu müşteriye sunulur. Test sürümü kabul edildikten sonra üretim sunucusu güncellenir. SCRUM metodolojisine uygun olarak haftada bir kez yeni versiyonları üretim sahasına yükleyeceğimi belirledim. Buna göre temel gelişim için 3-4 gün vardır. Testler ve hata düzeltmeleri için 1 gün ve üretim sunucusunu güncellemek için yarım gün. Son teslim tarihleri ​​elbette dalgalanıyor, ancak "her perşembe yayınlanma" kuralına kesinlikle uymaya çalıştım.

Karşılaştığım ilk şey, 1C-Bitrix'te aynı dosyanın sitenin farklı uçlarında farklı işlevlerde aynı anda kullanıldığı durumların olmasıydı. En basit ve en bariz çözüm, diğer tüm projelerde kullandığım, benim durumumda SVN olan bir sürüm kontrol sistemi kullanmaktır. Ancak sürüm kontrolünü kullanmak için her geliştiricinin kendi kod sürümüne sahip olması ve bunu düzenleyip ortak depoda birleştirmesi gerekir.

Peki lisans? İletişime geçildi teknik Destek 1C-Bitrix. Ek satın alma teklifi aldım. geliştirme lisansları. En hafif tabirle memnun değildim ama başka bir teklif de almadım. Yeterince hızlı bir çözüm buldum. NFR anahtarlarını kullanmaya karar verdim. Neyse ki iş ortağı durumu buna izin veriyor. Sonuç olarak 5 çevrimiçi mağaza kurulumu oluşturdum:

  • Üretim sunucusu
  • Test sunucusu
  • 3 geliştirme sunucusu (geliştirici başına bir tane)

Zamanla daha da ileri gittim. Test cihazı için ayrı bir kurulum da mevcuttur. Şansımla, müşterinin test sunucusunda her zaman orada bir şeyler güncellendiği anda oturum açtığı ortaya çıktı. Hata takibi, halihazırda tamamlanmış birçok gereksiz görevi içerir ve müşteri, işimizi kötü yaptığımız izlenimini edinir.

Şu anda aşağıdaki şemayı kullanıyorum:

  • Her geliştirici iş için yalnızca kendi yerel kopyasını kullanır
  • Kararlaştırılan zamanda, tamamlanan tüm iyileştirmeler depodaki ortak bir dalda birleştirilir
  • QA, test için birleştirilmiş sürümü alır
  • Hatalar test edilip düzeltildikten sonra demo sunucusu müşteri için güncellenir
  • Müşteri tarafından doğrulanıp kabul edildikten sonra iyileştirmeler üretim sunucusuna aktarılır.

Bu yaklaşımın bariz dezavantajları arasında, geliştirme sürecine müşteri katılımının düşük düzeyini vurgulamak isterim. Sonuç yalnızca son aşamada müşteri tarafından görülebilir. Bu yaklaşım, nadiren hata yapan ve müşteriyle sürekli iletişim halinde olan iyi bir analistiniz varsa uygulanabilir. Aksi takdirde birçok görevin sıfırdan yeniden yapılması gerekecektir.

Devreyi kurarken başka bir sorunla karşılaştım. Proje yaklaşık 80GB disk alanı kaplıyor. Önbellek ve geçici dosyalar olmadan - yaklaşık 60. İlk başta resimleri ve videoları sürüm kontrolünden kaldırmaya çalıştım - işe yaramadı. Sitedeki bilgiler sürekli değişmektedir. Güncel verileri kullanarak test etmeniz gerekir. Depoya ilk site taahhüdü beni parçalar halinde 2 günden fazla sürdü. Geliştirme klasörüne yapılan ilk ödeme birkaç saat sürer (SVN sunucusu yerel ağ gelişim). Tanrı korusun, yanlışlıkla proje klasörünü tamamen güncellerseniz, sigara içmeye, öğle yemeği yemeye, pinpon veya curling oynamaya gidebilirsiniz. Yalnızca seçilen dosya veya klasörlerin kaydedilmesi oldukça hızlıdır. Çözüm: Bir düzine değiştirilmiş dosyayı tek seferde indirme görevini tamamladım.

Sorun No. 3 – üretim sunucusunun güncellenmesi ve müşteriyle işbirliği yapılması

Sorun en önemli, karmaşık ve tam olarak çözülmemiş olanıdır. Sonuçta, projenin iç çalışmasıyla ilgili başka sorunlar varsa, o zaman müşterinin itibarı ve geliri ve dolayısıyla benim gelirim sitenin çalışmasına bağlıdır.

Murphy yasaları burada harika çalışıyor:

  • Test sunucusunda bir şey iyi çalışmıyorsa, üretim sunucusunda kesinlikle bozulacaktır.
  • Test sunucusunda bir şey mükemmel çalışıyorsa üretim sunucusunda yine bozulacaktır.
  • Sitede bir hata sadece 5 saniyeliğine mevcutsa, ziyaretçilerden biri onu mutlaka bulacaktır ve incelemelerde veya geri bildirim formunda mutlaka bu hata hakkında yazacaktır.
  • Güncelleme sırasında site 1 dakika çalışmazsa, o zaman şirket sahibi bunu arkadaşına veya rakibine bu dakikada gösterecektir (ve bu, güncelleme zamanı ve prosedürü konusunda anlaşmaya varılmasına rağmen).
Elbette abartıyorum ama her şakanın içinde bir miktar mizah vardır. Sitedeki minimum yük sabah 4'ten sabah 6'ya kadardır. Elbette şu anda güncelleme yapmak daha iyi olur, ancak gerçekten istemiyorum.

Çoğu web uygulamasında, uygulamayı katmanlara bölmek için net bir yapı vardır ve siteyi güncellemek 2 bölüme ayrılabilir:

  • Kod güncellemesi
  • SQL komut dosyalarını kullanarak veritabanını güncelleme

1C-Bitrix durumunda her şey biraz daha karmaşıktır. Öncelikle çok fazla dosya var. Projemde bir milyondan fazla var. Depodan yapılan tipik bir güncelleme 20-30 dakikadan az sürmez. Elbette yalnızca değiştirilen dosyaları güncelleyebilirsiniz, ancak bu durumda deponun bütün anlamı kaybolur. İkincisi, bu çok daha üzücü, çoğu zaman güncelleme yaparken yönetici paneli aracılığıyla manuel değişiklikler ve ayarlar yapmanız gerekiyor. Ve bu her zaman yavaştır, yapılması gereken tüm değişiklikleri hatırlamanız gerekir, kazara hata yapma olasılığı yüksektir. Elbette veritabanında gerekli tüm değişiklikleri yapacak bir SQL betiği yazabilirsiniz. En basit durumlarda elbette bunu yapıyoruz. Ancak çoğu durumda, böyle bir komut dosyasını yazmak ve hata ayıklamak, geliştirmenin kendisinden daha fazla zaman alır ve sonraki testlerle tüm eylemleri manuel olarak gerçekleştirmekten çok daha fazla zaman alır.

Soruna henüz iyi bir çözüm bulamadım. Artık veritabanındaki ayarları manuel olarak güncelliyoruz. Hataları en aza indirmek için güncelleme sırasında yapılması gerekenlerin listesini içeren bir kontrol listesi derlenir. Güncellemeyi mümkün olduğunca dikkatli ve doğru bir şekilde gerçekleştirmeye çalışıyoruz. Güncellemeden sonra tüm ekip üretim sunucusunun ana işlevselliğini kontrol eder ve ek testler yapar. Hata sayıları en aza indirildi ancak güncelleme sırasında oluşan hatalardan ve kesintilerden tamamen kurtulmak henüz mümkün olmadı.

Karşılaştığım ikinci şey ise işbirliği müşteriyle birlikte. Çünkü Proje büyük, yaklaşık 30 kişi sürekli üzerinde çalışıyor. İçerik yöneticileri, satış yöneticileri, SEO optimize ediciler, pazarlamacılar ve diğerleri. Doğal olarak herkes site sayfalarında ve modül ayarlarında bazı değişiklikler yapar. İlk karar, müşterinin sitenin program kodunda değişiklik yapma hakkının elinden alınmasıydı. Karar kesinlikle doğruydu ama durum daha da kötüleşti. Daha önce müşteri kendisinin de siteye gidip kazara bir şeyi kırabileceğini varsaydı, şimdi tüm sorunlar sadece bize düşmeye başladı. Ne alakası var. İçerik yöneticisi sayfadaki metni çarpık bir şekilde düzenlemiş ve bazı etiketleri kapatmamış olsa bile, geliştirici yine de suçludur. Çözümün oldukça basit olduğu görüldü. Pazarda sayfa sürümü kontrolü için ücretsiz bir modül bulunur. Bu sorunu çözmedi, birileri yine de zaman zaman bir şeyleri berbat edecek, ancak artık kimin neyi değiştirdiğini ve her şeyin neden bozulduğunu her an görmek mümkün. Sonuç elbette buz değil ama beni birçok sinirden kurtarıyor.

Ayrıca test sunucusunun her güncellemesinden önce üretim sunucusundan bir kopyasını ona almaya karar verdik. Bu aynı zamanda çok zaman alır. Projeyi arşivleyin, başka bir sunucuya aktarın, sıkıştırın. Bütün bunlar birkaç saat sürüyor. Ancak yeni iyileştirmeler pratik olarak savaş koşullarında test ediliyor. Test ve üretim sunucularının ayarlarının aynı olması durumunda çalışma farkı minimum düzeyde olacak ve hata sayısı önemli ölçüde azalacaktır. Deneyimler, üretim sunucusunun bir hafta içinde o kadar çok değişebileceğini ve haftalık bir kopyada sorunsuz çalışan bazı yeni işlevlerin yeni bir kopyada hiç çalışmayabileceğini göstermiştir.

Sorun #4 – “bunu benim için acilen yapın, bu 5 dakikalık bir görev”

Sorun 1C-Bitrix'le değil, çalışma projelerinin iyileştirilmesi ve desteklenmesiyle ilgilidir. Çoğu zaman müşterinin küçük bir şey yapma isteği vardır, ancak acilen ve hemen üretim sahasında. Sonuç her zaman aynıdır; bundan iyi bir şey çıkmaz. En iyi durumda, bu değişiklik bir sonraki sürümde unutulacaktır; en kötü durumda ise sunucu çökecek ve birkaç saat boyunca yedekten geri yüklenmesi gerekecektir.

Tek bir çözüm buldum; güvenilirlik ve emniyetten ödün vererek asla müşterinin yolundan gitmeyin. Müşteri nasıl sorarsa sorsun, geliştirici her zaman suçlu olacaktır. Eski patronumun bana söylediği gibi: "Senden kötü bir şey yapmanı istemedim."

Yedekleme konusuna da değindiğimiz için şunu belirtmek isterim. 1C-Bitrick kullanarak yedekleme elbette iyi ve kullanışlıdır ancak çok yavaştır. Veritabanındaki 1-2 dosyayı veya birkaç değeri acilen geri yüklemeniz gerekiyorsa, 60 GB'ın tamamı açılana kadar beklemeniz gerekir. Aşağıdaki şema bana en etkili gibi görünüyor:

  • Dosyaların ve veritabanlarının arşiv şeklinde günlük bir yedeği bulunmalıdır. dış kaynak veri.
  • Her zaman 2 seçenekten birini kullanarak güncellemeden hemen önce yedekleme yaparız:
    1. Seçenek ışığı – Proje klasörünün tamamını sunucudaki bitişik klasöre kopyalayın. Veritabanını ayrı bir dosyaya dump olarak kaydediyoruz. Hiçbir şeyi arşivlemiyoruz. Veritabanında veya dosyalardan birinde bir değeri geri yüklemeniz gerekirse, her şey elinizin altında ve kolayca erişilebilir olacak
    2. Güçlü seçenek - öncekine benzer, yalnızca veritabanını başka bir veritabanına kopyalarız MySQL verileri. Bu, tam bir çökme durumunda sitenin ana klasördeki kök klasörünün 1-2 dakika içinde düzeltilmesine olanak tanıyacak ve proje, veritabanının bir kopyasıyla komşu bir klasörden çalışmaya başlayacaktır.

Çözüm

Sonuna kadar okuyan herkese teşekkürler. Umarım deneyimim sizin için yararlı olacaktır. Yorumlarda veya kişisel mesajda dile getirilen sorunları çözmenin daha iyi yolları için öneriler almaktan memnuniyet duyacağım. Şimdi, halihazırda başlatılmış olan projeleri yüksek güvenilirlik gereksinimleriyle sonuçlandırmanın ve desteklemenin temel sorunlarını dile getirmeye çalıştım. Materyal ilginç çıkarsa, 1C-Bitrix mimarisinin Bitrix'te bir sitenin geliştirilmesini diğer web projelerinin geliştirilmesinden ayıran özellikleri hakkında bir devam yazmayı planlıyorum.

Birlikte çalışmaya ilişkin bilgiler eğitimlerde ve belgelerde bulunabilir. Eğitim kursları, çalışma yöntemlerinde uzmanlaşmak için tasarlanmıştır. yazılım ürünü ve dokümantasyon - CMS özelleştirme ilkelerine hakim olmak için.

İle çalışırken "1C-Bitrix: Site Yönetimi" problemler spesifik pratik problemler şeklinde ortaya çıkar. Özel konular halinde topladık farklı sayfalar Sorularınıza yanıt bulmanızı kolaylaştıracak eğitimler.



Eğitim merkezleri Bir soru sor Forum



Yer imi İçerik yöneticileriÜrünle doğrudan çalışacak kişilere, yani yazılım ürünümüz üzerinde oluşturulan projelere liderlik eden içerik yöneticilerine yöneliktir.

Yer imi Yöneticiler yönetecek olanlara yöneliktir "1C-Bitrix: Site Yönetimi".

Yer imi Geliştiriciler için proje geliştiricileri için tasarlanmış "1C-Bitrix: Site Yönetimi".

İçerik yöneticileri

Kursu web sitenize aktarabilirsiniz İçerik yöneticisi bu arşivden. Testler için sorusuz kurs.
5 Haziran 2015 tarihli kurs versiyonu.

Yöneticiler

Geliştiriciler için

Geliştirici belgeleri sistem API'sinin açıklamasıdır. Kullanıcı belgeleri, sistem bileşenlerinin ve ayarlarının açıklamasıdır.

Dokümantasyon hem çevrimiçi olarak hem de chm formatında bir dosya olarak mevcuttur. Daha güncel olduğu için online versiyonun kullanılması tavsiye edilir. chm formatındaki dosyalar periyodik olarak güncellenir ve aşağıdakiler hakkında bilgi içermeyebilir: son değişiklikler Yardım sisteminde.

Dikkat! Format dosyasının içeriğini göremiyorsanız .chm, o zaman nedeni işletim sisteminin güvenlik ayarlarıdır. Dosya özelliklerinde dosyanın görüntülenmesini engellemeyi kaldırmanız gerekir. Daha fazlasını okuyunSSS

Dokümantasyon referans bilgisidir. Acemi bir geliştiricinin sistemle çalışması yeterli değildir. Programlama ilkelerine hakim olmak Bitrix ÇerçevesiÖzel bir kurs size yardımcı olacaktır:


Tepe