在1s-Bitrix系统上有一家公司的在线商店和b2b平台。 公司发展壮大,仓库出现了,并增加了需要展示的合作伙伴仓库。 需要在几个仓库中显示余额。
Bitrix告诉我们的是:请转到业务编辑部,一切都会变得美好而立即。 他们去了编辑部,结果发现1C-Bitrix中的多价值和多仓库生活是分开的。 第一个需要显示不同用户组的不同价格,第二个需要显示不同仓库中的余额。
我们需要提取每个仓库的余额和价格,因为合作伙伴和我们的价格可能相差一个相同的位置。 事实证明,没有这样的常规功能。
然后,他们想到了重新制作标准模板的想法,并在现场方面制定了一些仓库价格。
我要做的第一件事是重做catalog.section和catalog.element模板。 catalog.store.amount组件已插入其中:
1.显示产品卡的价格清单仓库
程式码片段if ($arResult['CATALOG_QUANTITY']!=0){ // $APPLICATION->IncludeComponent("bitrix:catalog.store.amount","finnit_buy", array("ELEMENT_ID" => $arResult["ID"] // ID
2.对于通过组件的商品清单,仅选择一个价格(最低价格或最短交货时间)。
程式码片段 $APPLICATION->IncludeComponent( "bitrix:catalog.store.amount", "finnit_1sk", array( "ELEMENT_ID" => $arElement["ID"]
因此,为每个物种创建了一个模板,并随之创建了更多的模板。 例如,用于快速购买的模板显示了具有进行购买价格的最佳仓库。
组件catalog.store.amount的工作分三个阶段进行。
1.手动匹配仓库中的代码-价格(方便少量仓库)。 在这种情况下,该代码指示特定仓库的价格类型。
程式码片段 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.在开始连接仓库之后,第一个选择被证明不合适,因此决定将仓库价格捆绑包放在单独的信息块中。
程式码片段 <?// $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{}} } ?>
因此,已经有可能维持足够大的仓库数量。
3.直接在仓库中使用自定义字段与价格类型进行比较。
最初未考虑此选项。 而且只有在商店开业之后,经过车里雅宾斯克,才有必要根据圣彼得堡的仓库来指示货物的交货时间,为此,他们使用了仓库中的自定义字段。
我认为此选项是最佳选择。 目前,已将多个模板转移到同一选项,以比较仓库和价格。
附言:如果您知道更合适的选择-在评论中写下,我将不胜感激。
PPS如果您有任何意见或疑问,请写-我会回答。