Harga berbeda untuk gudang di multi-gudang. Perbaikan 1C-Bitrix

Ada toko online dan platform b2b dari satu perusahaan di sistem 1s-Bitrix. Perusahaan tumbuh dan gudang-gudangnya muncul dan gudang mitra yang perlu dipajang ditambahkan. Ada kebutuhan untuk menampilkan saldo di beberapa gudang.

Dan apa yang dikatakan Bitrix kepada kami: Silakan pergi ke kantor editorial Bisnis dan semuanya akan menjadi indah dan segera. Mereka pergi ke kantor editorial dan ternyata multi-nilai dan multi-gudang di 1C-Bitrix menjalani kehidupan yang terpisah. Yang pertama diperlukan untuk menampilkan harga yang berbeda untuk kelompok pengguna yang berbeda, dan yang kedua untuk menampilkan saldo di gudang yang berbeda.

Kami perlu menarik saldo dengan harga mereka untuk setiap gudang, karena harga di mitra dan kami mungkin berbeda satu dan posisi yang sama. Ternyata tidak ada fungsi reguler seperti itu.

Kemudian muncul ide untuk membuat kembali templat standar dan di sisi situs untuk membuat banyak harga gudang.

Hal pertama yang harus saya lakukan adalah mengulang templat catalog.section dan catalog.element. Komponen catalog.store.amount dimasukkan ke dalamnya:

1. Daftar gudang dengan harga ditampilkan untuk kartu produk

Cuplikan kode
if ($arResult['CATALOG_QUANTITY']!=0){ //         $APPLICATION->IncludeComponent("bitrix:catalog.store.amount","finnit_buy", array("ELEMENT_ID" => $arResult["ID"] //  ID  


2. Untuk daftar barang melalui komponen, hanya satu harga yang dipilih (baik harga terendah atau waktu pengiriman minimum).

Cuplikan kode
 $APPLICATION->IncludeComponent( "bitrix:catalog.store.amount", "finnit_1sk", array( "ELEMENT_ID" => $arElement["ID"]//  ID  


Jadi untuk setiap spesies, sebuah template dibuat, bersama dengan ini beberapa template dibuat. Misalnya, templat untuk pembelian cepat yang menampilkan gudang optimal dengan harga untuk melakukan pembelian.

Bekerja pada catalog.store.amount komponen pergi dalam 3 tahap.

1. Pencocokan manual dalam kode gudang - harga (nyaman dengan sejumlah kecil gudang). Dalam hal ini, kode menunjukkan jenis harga untuk gudang tertentu.

Cuplikan kode
 if ($arProperty['ID'] == 29){//   $db_res = CPrice::GetList( array(), array("PRODUCT_ID" => $arParams['ELEMENT_ID'],"CATALOG_GROUP_ID" => '28')); // 28 -      if ($ar_res = $db_res->Fetch()){ if($min_price > (ceil(($ar_res["PRICE"] + ($ar_res["PRICE"]/100))/10)* 10)) $min_price = ceil(($ar_res["PRICE"] + ($ar_res["PRICE"]/100))/10)* 10; //            $amount = $arProperty["AMOUNT"]; //     $title = $arProperty["ID"]; //     ,      1        -      ID,     . } 


2. Setelah gudang mulai terhubung, opsi pertama ternyata tidak cocok dan diputuskan untuk menyimpan bundel harga gudang di blok informasi yang terpisah.

tangkapan layar


Cuplikan kode
 <?//      $arSelectEquals = Array("ID", "IBLOCK_ID"); $arFilterEquals = Array("IBLOCK_ID"=>18); //ID   $equals = CIBlockElement::GetList(Array(), $arFilterEquals, false, Array(), $arSelectEquals); while($equal = $equals->GetNextElement()){ $arPropsEquals = $equal->GetProperties(); if ($arProperty["ID"] == $arPropsEquals["SKLAD_ID"]["VALUE"]){//    $db_res = CPrice::GetList( array(), array("PRODUCT_ID" => $arParams['ELEMENT_ID'],"CATALOG_GROUP_ID" => $arPropsEquals["PRICE_ID"]["VALUE"])); if ($ar_res = $db_res->Fetch()){ if (!isset($ar_res["PRICE"])){ echo GetMessage('FINN_PRICE_MANAGER');//     }else{ //       $pricen = ceil( $ar_res["PRICE"] );//      $price_id = $ar_res["CATALOG_GROUP_ID"];//      $price_name = $ar_res["CATALOG_GROUP_NAME"];//      } //echo number_format( $pricen, 0, ',', ' ' ); $torgId = $ar_res["ID"]; //      $torgGId = $ar_res["CATALOG_GROUP_ID"];//      } } else{}} } ?> 


Dengan demikian, sudah dimungkinkan untuk mempertahankan volume gudang yang cukup besar.

3. Menggunakan bidang khusus langsung di gudang untuk perbandingan dengan jenis harga.

Opsi ini pada awalnya tidak dipertimbangkan. Dan hanya setelah toko dibuka, melewati Chelyabinsk, itu juga perlu untuk menunjukkan waktu pengiriman barang tergantung pada gudang di St. Petersburg, untuk tujuan ini mereka menggunakan bidang khusus di gudang.

Tangkapan layar


Saya pikir opsi ini adalah yang paling optimal. Dan saat ini, beberapa templat telah ditransfer ke opsi yang sama untuk membandingkan gudang dan harga.

PS Jika Anda tahu pilihan yang lebih cocok - tulis di komentar, saya akan berterima kasih.

PPS Jika Anda memiliki komentar atau pertanyaan tulis - saya akan menjawab.

Source: https://habr.com/ru/post/id420071/


All Articles