เราได้อธิบายขั้นตอนการติดตั้งส่วนประกอบการชำระเงินใหม่แล้ว เขาทดสอบโครงการเป็นเวลาหลายวัน และถึงเวลาที่จะใช้ประโยชน์จากโอกาสที่คุ้มค่าที่จะเปลี่ยนไปใช้แพลตฟอร์ม 1C-Bitrix ใหม่
การทดแทนเมืองเริ่มต้นโดยอัตโนมัติ
ตัวอย่างนี้จะมีประโยชน์สำหรับทั้งร้านค้าระดับภูมิภาคขนาดเล็กและโครงการขนาดใหญ่ภูมิภาคการจัดส่งเป็นองค์ประกอบหลักประการแรกของกระบวนการสั่งซื้อ สมมติว่าเราจำเป็นต้องใช้การทดแทนชื่อ "คาลินินกราด" โดยอัตโนมัติเพื่อเพิ่ม Conversion และลดปัญหาในการสั่งซื้อ
ตอนนี้เมื่อคุณเข้าสู่ระบบครั้งแรกจะมีลักษณะดังนี้:
แน่นอนว่าลูกค้าสามารถคลิกที่ปุ่ม "คาลินินกราด" หลังจากนั้นจะต้องกรอกข้อมูลในฟิลด์ แต่หลายคนก็ข้ามขั้นตอนนี้ไปซึ่งส่งผลให้เกิดข้อผิดพลาด:
ปัญหานี้ถูกระบุโดย Metrica Webvisor แน่นอนหลังจากนี้ลูกค้ากรอกทุกอย่างถูกต้อง แต่ยังมีสารตกค้างแม้ว่าในร้านค้าหลายแห่งการรับสินค้าจะเป็นเกณฑ์สำคัญ (มากถึง 80% ของคำสั่งซื้อ) และในกรณีนี้การเติมเมืองที่ถูกต้อง ชื่อไม่สำคัญ
มาตั้งค่าเมืองเริ่มต้นและดูว่าการทดแทนใช้งานได้หรือไม่ ไปที่ส่วนผู้ดูแลระบบของร้านค้าแล้วไปที่การตั้งค่าคุณสมบัติ:
และตั้งค่าตำแหน่งเริ่มต้น:
ตอนนี้เรามาสั่งซื้อเพื่อตรวจสอบ:
เยี่ยมมาก กรอกสถานที่เรียบร้อยแล้วและลูกค้าเพียงแค่คลิก "ถัดไป" ตอนนี้คำสั่งซื้อจะถูกวางโดยไม่สะดวกสำหรับลูกค้า และเราจะเพิ่ม Conversion ให้สูงสุด สำหรับร้านค้าขนาดใหญ่ พวกเขาสามารถรวบรวมสถิติความถี่ของการสั่งซื้อจากบางเมือง และสร้างปุ่มเลือกอย่างรวดเร็วดังในภาพหน้าจอ: "Kaliningrad", "Zelenogradsk", "Svetlogorsk"
คุณสามารถตั้งค่าเมืองที่ได้รับความนิยมสูงสุดเป็นค่าเริ่มต้นได้ เนื่องจากการเปลี่ยนแปลงหรือชี้แจงทางโทรศัพท์จะง่ายกว่าการสูญเสียลูกค้าเสมอ
ข้อจำกัดการชำระเงินเพิ่มเติม
ขั้นตอนต่อไปในการสั่งซื้อคือการบล็อกการชำระเงิน ข้อจำกัดประเภทหนึ่งอาจเป็นการห้ามชำระเงินด้วยเงินสดเมื่อจัดส่งทางไปรษณีย์ สิ่งนี้มีประโยชน์ในกรณีที่ผู้หญิงทำงานในเหมืองหินและไม่ต้องการเสี่ยงต่อสุขภาพเมื่อขนส่งเงินจำนวนมากเราจะแนะนำข้อจำกัดที่เกี่ยวข้องกับบริการจัดส่งบางอย่างและจำนวนเช็คสูงสุด หากต้องการทำสิ่งนี้ ให้ไปที่อินเทอร์เฟซผู้ดูแลระบบไปที่แท็บ "ข้อจำกัด" เพื่อดูวิธีการชำระเงินเฉพาะ:
ในกรณีนี้ คุณจะต้องสร้างระบบการชำระเงินด้วยเงินสดสองระบบ:
- ประการหนึ่งเราจะจำกัดการใช้จุดรับ แต่ไม่มีข้อจำกัดด้านราคา
- และในวินาทีนี้ เราจะจำกัดตัวเองอยู่เฉพาะบริการจัดส่งและเพิ่มขีดจำกัดจำนวนเงิน
ขณะนี้ข้อจำกัดในการจัดส่ง:
เป็นผลให้เราได้รับสิ่งต่อไปนี้:
ตรวจสอบการดำเนินการตามคำสั่งซื้อด้วยสินค้ามูลค่าน้อยกว่า 10,000 รูเบิลและจัดส่งทางไปรษณีย์:
ทุกอย่างเรียบร้อยดี มีการชำระเงินที่จำเป็น สามารถสั่งซื้อได้
ตรวจสอบสินค้าที่มีมูลค่ามากกว่า 10,000 รูเบิล:
เยี่ยมมาก ไม่มีการชำระด้วยเงินสด คุณสามารถสั่งซื้อด้วยการชำระเงินด้วยวิธีอื่นโดยไม่ต้องเสี่ยงกับบริการจัดส่งและเงิน
เมื่อมีการบังคับใช้ข้อจำกัด ลูกค้าจะไม่เห็นวิธีการชำระเงินที่ "ต้องห้าม" และจะไม่ทะเลาะกับผู้ให้บริการ ซึ่งจะต้องอธิบายอย่างต่อเนื่องว่าทำไมบริษัทของคุณจึงไม่ส่งคำสั่งซื้อที่วางไว้
บริการจัดส่งเพิ่มเติม
เรามักถูกขอให้มอบโอกาสในการสร้างบริการที่จำเป็นในการจัดส่ง สิ่งนี้ได้ถูกนำไปใช้ในแพลตฟอร์มใหม่ ประโยชน์ของบริการเพิ่มเติมคือการเพิ่มใบสั่งซื้อเฉลี่ยไปที่การตั้งค่าการจัดส่ง:
แท็บแยกต่างหากปรากฏในอินเทอร์เฟซพร้อมบริการเพิ่มเติมที่จะแสดงในบล็อกการจัดส่ง รองรับบริการสามประเภท:
- รายการบริการ ลูกค้าจะถูกขอให้เลือกรายการจากรายการบริการ ตามค่าเริ่มต้น รายการแรกจะถูกเลือก ดังนั้นหากคุณไม่จำเป็นต้องเพิ่มราคา บริการแรกในรายการก็ควรจะมีราคาเป็นศูนย์
บริการเชิงปริมาณ บริการถูกสร้างขึ้นโดยมีราคาต่อหน่วย และลูกค้าสามารถระบุปริมาณที่ต้องการได้
บริการเดี่ยว บริการอิสระ ซึ่งแสดงเป็นช่องทำเครื่องหมาย ไม่ใช้ค่าเริ่มต้น ลูกค้าจะต้องเลือกสิ่งที่ต้องการโดยอิสระ
มาดูกันว่ากฎเหล่านี้ได้รับการกำหนดค่าอย่างไร:
การตั้งค่าสำหรับบริการทุกประเภทจะคล้ายกันมาก: มีสองช่วงตึกที่ควบคุมองค์ประกอบหลัก ก่อนอื่นคุณต้องตั้งชื่อและคำอธิบายของบริการ จากนั้นระบุผู้ที่สามารถใช้บริการได้:
- ผู้จัดการ - บริการจะแสดงในส่วนต่อประสานผู้ดูแลระบบ
- ลูกค้า - บริการจะแสดงระหว่างการสั่งซื้อในที่สาธารณะของเว็บไซต์
“การป้อนข้อมูลส่วนบุคคล” แบบไดนามิก
การส่งมอบเสร็จสมบูรณ์ ตอนนี้คุณสามารถไปยังองค์ประกอบที่สำคัญที่สุดประการหนึ่งในการสั่งซื้อได้ - การขอข้อมูลจากผู้ใช้เพื่อการจัดส่งหรือการจัดส่ง ในองค์ประกอบก่อนหน้านี้ ลูกค้าได้รับการร้องขอชุดฟิลด์เดียวกัน เขาต้องเลือกว่าจะกรอกช่องไหนซึ่งค่อนข้างไม่สะดวกองค์ประกอบการชำระเงินใหม่สามารถขอชุดฟิลด์ที่แตกต่างกันได้ บ่อยกว่านั้น เจ้าของร้านค้าจะลดจำนวนข้อมูลที่จำเป็นต้องป้อนระหว่างการรับสินค้า บางทีในกรณีนี้ก็เพียงพอแล้วสำหรับเราที่จะรู้ว่า:
- โทรศัพท์.
- อีเมล. รายการนี้ยังสามารถลบออกได้ แต่บางครั้งคุณต้องการ "ปรนเปรอ" ลูกค้าด้วยจดหมายข่าวเกี่ยวกับผลิตภัณฑ์ใหม่
เราจะเชื่อมโยงเฉพาะ "บริการจัดส่ง" ที่ควรแสดงฟิลด์นี้ จากนั้นเราไปที่ส่วนสาธารณะแล้วลองสั่งซื้อ เราเลือกรับของแล้วพบว่าทางร้านไม่ขอที่อยู่จัดส่งจากเรา
นี่เป็นฟังก์ชันที่มีประโยชน์และน่ายินดี ท้ายที่สุด คุณต้องยอมรับว่าการตอบคำถามของลูกค้าไม่ใช่เรื่องน่ายินดีนัก: “ทำไมคุณถึงต้องการที่อยู่ของฉัน ถ้าฉันจะไปรับสินค้าด้วยตัวเอง” ตอนนี้คุณไม่จำเป็นต้องทำเช่นนี้
จุดรับออเดอร์
สุดท้ายนี้ ฉันอยากจะพูดถึงการเปลี่ยนแปลงในบล็อกการเลือก "จุดรับคำสั่งซื้อ" ในเวอร์ชันก่อนหน้านี้ ข้อร้องเรียนหลักคือปัญหาในการแสดงจุดรับจำนวนมาก แผนที่ขนาดเล็ก และการขาดการเลือกจุดรับโดยอัตโนมัติ (หากมีเพียงจุดเดียว เป็นต้น)ส่วนประกอบเวอร์ชันใหม่ได้เพิ่มการตั้งค่าสำหรับการแสดงจุดรับคำสั่งซื้อ หากเป็นเพียงเมืองเดียวในเมืองใดๆ เราจะแสดงบล็อกที่ยุบทันทีและแสดงข้อมูลทั้งหมดพร้อมรูปภาพ หรือแสดงบล็อกที่ขยาย ในกรณีแรก คุณจะต้องเข้าสู่บล็อกเพื่อแสดงแผนที่ และในกรณีที่สอง แผนที่จะปรากฏขึ้นทันที
การแก้ปัญหาเอาท์พุต บริการจัดส่งอัตโนมัติของร้านค้าออนไลน์ Bitrix v14 เมื่อทำการสั่งซื้อบน Yandex.Market
นี่คือสิ่งที่เรากำลังพูดถึง แต่ปรากฎว่ายังไม่ได้ดำเนินการ มีเพียงบริการที่กำหนดเองเท่านั้นที่ใช้งานได้ เราจะแก้ไขวันนี้
ที่นี่ฉันกำลังทดสอบการวางคำสั่งซื้อในแผง Yandex.Market ผู้ซื้อจะเห็นสิ่งเดียวกันเมื่อเขาสั่งซื้อบน Yandex.Market
การเลือกบริการอัตโนมัติ
ก่อนอื่นเราต้องเพิ่มบริการจัดส่งอัตโนมัติในการตั้งค่าโมดูล ร้านค้าออนไลน์ในส่วน ช้อปปิ้งในตลาด
เพราะ โดยค่าเริ่มต้นจะไม่อยู่ที่นั่นและเราจะไม่สามารถอัปเดตโมดูลร้านค้าออนไลน์ได้อีกต่อไป ฉันแก้ไขในโมดูลโดยตรงเนื่องจาก... ในกรณีของฉัน หากคุณอัปเดตร้านค้า ทุกอย่างจะหยุดทำงานให้กับลูกค้า ซึ่งในกรณีของคุณ ฉันไม่รู้ว่าต้องทำอย่างไร ลองคิดดูในร้านค้า Bitrix v16 ใหม่ บางทีนี่อาจจะไม่ทำงานเช่นกัน
การตั้งค่าระบุไว้ในหน้าการดูแลระบบในไฟล์
/bitrix/modules/sale/admin/ymarket.php
มีบริการที่กำหนดเองถึง หยิบและด้านล่างฉันได้แสดงบริการจัดส่งแบบอัตโนมัติ ซึ่งทั้งหมดมีค่าดังกล่าว จดหมายในกรณีของฉัน ต้องใช้เมลเท่านั้น หากคุณต้องการอย่างอื่น การแก้ไขก็ไม่ยากเพราะ หลักการจะชัดเจนว่าต้องทำอะไรและที่ไหน แต่บริการอัตโนมัติทั้งหมดจะปรากฏขึ้นบางทีอาจจะใช้งานได้ฉันแค่ยังไม่ได้ตรวจสอบ
ดังนั้นเราจึงพบว่าในไฟล์มีอาร์เรย์ของบริการแบบกำหนดเอง $arDeliveryList เกิดขึ้นและเพิ่มบริการอัตโนมัติลงไป
$arDeliveryFilter = อาร์เรย์(
"LID" => $arTab["SITE_ID"],
"ใช้งานอยู่" => "ใช่"
);//การจัดส่งแบบคงที่
$dbDeliveryList = CSaleDelivery::GetList(
อาร์เรย์("NAME" => "ASC"),
$arDeliveryFilter,
เท็จ,
เท็จ,
อาร์เรย์("ID", "ชื่อ")
);$arDeliveryList=array();
ในขณะที่ ($arDelivery = $dbDeliveryList->ดึงข้อมูล())
$arDeliveryList[$arDelivery["ID"]] = $arDelivery["NAME"];//จัดส่งอัตโนมัติ
$dbRes = CSaleDeliveryHandler::GetList(
อาร์เรย์("NAME" => "ASC"),
$arDeliveryFilter
);
ในขณะที่($delivery = $dbRes->Fetch())
{
$deliveryId = ($delivery["ID"] ? $delivery["ID"] : $delivery["SID"]);
$arDeliveryList[ $deliveryId ] = $delivery["NAME"];
}
ต่อไป เราจะค้นหาบล็อกเอาต์พุตการจัดส่งและเพิ่มตัวเลือกสำหรับเมลไปยังรายการ ในกรณีของฉันมีการใส่ความคิดเห็นไว้ คุณน่าจะมีสิ่งเดียวกันมากที่สุด
นี่คือลักษณะการเลือกที่เสร็จสิ้นแล้วซึ่งจะแสดงบริการจัดส่งในแผงผู้ดูแลระบบ
$ชื่อจัดส่ง):
$selected = isset($siteSetts["DELIVERIES"][$deliveryId]) ? $siteSetts["การจัดส่ง"][$deliveryId] : "";
?>
ทุกอย่างเสร็จสิ้นด้วยการตั้งค่า สิ่งที่เหลืออยู่คือการสรุปสคริปต์ที่มาถึง คำขอจาก Yandex.Marketเขาบอกตลาดว่าจะแสดงสินค้าใดให้ผู้ซื้อเห็น เมื่อทำการสั่งซื้อบน Yandex.Market.
คำขอ Yandex.Market
คำขอทั้งหมดจาก Yandex.Market ถึง Bitrix มาที่ไฟล์นี้ก่อน โดยจะมีเฉพาะการเชื่อมต่อของไฟล์อื่นเท่านั้น/bitrix/services/ymarket/index.php
ในไฟล์นั้น Bitrix API จะเชื่อมต่อเพื่อการโต้ตอบของ Yandex.Market กับร้านค้าออนไลน์ของคุณ
/bitrix/modules/sale/services/ymarket/index.php
ในไฟล์นี้เราสนใจวิธีการที่ไปไกลกว่าไฟล์ที่เราต้องการสำหรับการเปลี่ยนแปลง เราไม่ได้เปลี่ยนแปลงอะไรในนี้
$result = $YMHandler->processRequest($requestObject, $method, $postData);
และนี่คือไฟล์ของเรา ซึ่งตรรกะของการโต้ตอบระหว่าง Bitrix และ Yandex.Market ใช้งานได้
/bitrix/modules/sale/general/ym_handler.php
ฉันไม่ได้เขียนบทความทันที ฟังก์ชันการทำงานได้รับการทดสอบมาระยะหนึ่งแล้วและข้อผิดพลาดได้รับการแก้ไข แม้ว่าฉันจะลืมพูดอะไรก็ตาม ฉันแนบไฟล์มาด้วย คุณก็สามารถเข้าใจได้
โดยทั่วไป หากคุณไม่เคยทำการเปลี่ยนแปลงใดๆ กับไฟล์นี้บนเว็บไซต์ของคุณมาก่อน คุณสามารถลองใช้ไฟล์ทั้งหมดของฉันได้ ยกเว้นการส่งไฟล์ ซึ่งไม่มีอะไรเปลี่ยนแปลงในไฟล์ ทุกอย่างทำงานได้ตามปกติ
แล้วมีการเปลี่ยนแปลงอะไรบ้าง?ในคลาส CSaleYMHandler
1) เพิ่มตัวแปรที่จะจัดเก็บข้อมูลที่ครบถ้วนเกี่ยวกับสินค้าในรถเข็นเพื่อคำนวณการจัดส่งโดยบริการจัดส่งอัตโนมัติ
ป้องกัน $basketItems = array();
2) เปลี่ยนวิธีการฟังรถเข็นในตลาด รับข้อมูลเกี่ยวกับสินค้า (รถเข็น) และบริการส่งสินค้าคืนและวิธีการชำระเงิน
ฟังก์ชั่นที่ได้รับการป้องกัน processCartRequest($arPostData)
3) วิธีการรับข้อมูลเกี่ยวกับสินค้าในรถเข็นในตลาด (รหัส ราคา ปริมาณ น้ำหนัก ขนาด ฯลฯ) มีการเปลี่ยนแปลง
ฟังก์ชั่นที่ได้รับการป้องกัน getItemCartInfo($arItem, $currency)
4) วิธีการมีการเปลี่ยนแปลง ซึ่งได้รับข้อมูลเกี่ยวกับสถานที่ตั้งของผู้ซื้อ บริการจัดส่งที่มีให้กับเขาโดยการกรอง คำนวณการจัดส่ง และแสดงให้ผู้ซื้อเห็นในตลาด
ฟังก์ชั่นที่ได้รับการป้องกัน getDeliveryOptions($delivery, $price, $weight = 0, $arBasketItems = array())
ในวิธีนี้ มีการคำนวณบริการจัดส่ง Bitrix แบบกำหนดเองและอัตโนมัติ.
ให้ความสนใจที่นี่!
ในกรณีของฉัน ร้านค้าตั้งอยู่ในมอสโก และสำหรับมอสโก บริการจัดส่งอัตโนมัติทั้งหมดถูกปิดใช้งาน ไม่ควรแสดงสำหรับผู้ซื้อจากมอสโก งานรับและจัดส่งทางไปรษณีย์ที่นั่น เงื่อนไขนี้อยู่ในรหัส (หน้า 432):
ถ้า($locationTo == 2691) ดำเนินการต่อ;
5) วิธีการที่เพิ่มคำสั่งซื้อบนเว็บไซต์ของคุณ บอกตลาดว่า "ทุกอย่างเรียบร้อยดี" และส่งคืนหมายเลขให้กับ Yandex.Market มีการเปลี่ยนแปลง
ฟังก์ชั่นที่ได้รับการป้องกัน processOrderAcceptRequest($arPostData)
โดยเฉพาะบรรทัด 911 ที่เราได้รับ หมายเลขคำสั่งซื้อก็เป็นอย่างใดอย่างหนึ่ง รหัสคำสั่งซื้อ, หรือ รหัสสั่งซื้อเมื่อเปิดใช้งานการกำหนดหมายเลขคำสั่งซื้อตามเทมเพลต
$arResult["order"]["id"] = $this->getOrderNumber($orderID);
6) เพิ่มวิธีการส่งคืนหมายเลขคำสั่งซื้อบนเว็บไซต์ของคุณไปที่ Yandex.Market (รหัสคำสั่งซื้อหรือรหัสคำสั่งซื้อ)
ฟังก์ชั่นที่ได้รับการป้องกัน getOrderNumber($orderId)
นอกจากนี้
เพิ่มเติมเกี่ยวกับเว็บไซต์ที่อัปโหลด สถานที่ 2.0ฉันทำสิ่งนี้เมื่อปี 2558 ฉันจำได้ว่ามีปัญหากับ Yandex.Market, Bitrix กำลังมองหาสถานที่ไม่ถูกต้องและ Yandex.Market รายงานข้อผิดพลาด ฉันจำไม่ได้ว่าฉันทำที่ไหน ฉันเพิ่มไฟล์ ym_location.php ลงใน ที่เก็บถาวรไว้เผื่อหากพบโปรดแจ้งให้เราทราบฉันจะเพิ่มประเด็นนี้ในบทความ
บทสรุป
เมื่อทำการสั่งซื้อบน Yandex.Market ผู้ซื้อจะเห็นรายการการจัดส่งในแบบฟอร์มนี้ ร้านค้าของคุณจะส่งคืนสินค้าเหล่านั้นไฟล์ที่ใช้ในบทความจะแบ่งออกเป็นโฟลเดอร์ทั้งหมดซึ่งจะง่ายต่อการค้นหาไฟล์ใด
ผู้ประมวลผลบริการจัดส่งอัตโนมัติช่วยให้คุณสามารถใช้ตรรกะที่กำหนดเองโดยทางโปรแกรมเพื่อคำนวณต้นทุนการจัดส่งตามพารามิเตอร์คำสั่งซื้อและการตั้งค่าของคุณเอง อัลกอริธึมการคำนวณสามารถกำหนดเองได้ - ต้นทุนคงที่, การร้องขอบริการเว็บระยะไกล, การคำนวณตามตารางข้อมูลของตัวเอง ฯลฯ
ตัวจัดการคือคลาสหรือชุดของฟังก์ชันที่มีโครงสร้างดังต่อไปนี้:
วิธี | คำอธิบาย |
---|---|
คำอธิบายตัวจัดการ | ฟังก์ชันที่ส่งคืนคำอธิบายตัวจัดการ ชื่อเมธอด รายการโปรไฟล์ตัวจัดการ ฯลฯ |
การตั้งค่าตัวจัดการ | ฟังก์ชันที่ส่งคืนอาร์เรย์ของการตั้งค่าตัวจัดการ |
การตั้งค่าการประมวลผล | ชุดฟังก์ชันที่รับผิดชอบในการเตรียมการตั้งค่าสำหรับการเข้าสู่ฐานข้อมูลและการแปลงกลับ |
การตรวจสอบความเข้ากันได้ | วิธีการตรวจสอบความเข้ากันได้ของโปรไฟล์ของโปรเซสเซอร์ที่กำหนดกับคำสั่งซื้อ |
ฟังก์ชั่นการคำนวณ | วิธีการคำนวณต้นทุนการจัดส่งตามการตั้งค่าโปรเซสเซอร์และพารามิเตอร์การสั่งซื้อ |
เนื่องจากการทำงานกับชุดของฟังก์ชันแต่ละชุดนั้นไม่สะดวก ขอแนะนำให้รวมฟังก์ชันเหล่านั้นไว้ในคลาส (เนมสเปซ) ตามคำแนะนำนี้ คำอธิบายเพิ่มเติมจะตามมา รวมถึงตัวอย่างที่ให้มาจะถูกนำไปใช้ ในตัวอย่าง ตัวจัดการ "จัดส่งจัดส่ง" ถูกนำมาใช้เป็นคลาCDeliveryMySimple
คำอธิบายตัวจัดการ
คำอธิบายตัวจัดการเป็นวิธีการที่ส่งกลับอาร์เรย์ที่เชื่อมโยงของโครงสร้างต่อไปนี้:
พารามิเตอร์ | คำอธิบาย |
---|---|
เอสไอดี | ตัวระบุสตริงเฉพาะของตัวจัดการ |
ชื่อ | ชื่อผู้ดำเนินการ |
คำอธิบาย | คำอธิบายข้อความของตัวจัดการ |
DESCRIPTION_INNER | คำอธิบายภายในของตัวจัดการ ซึ่งแสดงขึ้นเมื่อกำหนดค่าตัวจัดการในแผงควบคุม |
BASE_CURRENCY | รหัสสกุลเงินพื้นฐานของตัวจัดการ |
ตัวจัดการ | พาธไปยังไฟล์ตัวจัดการ จำเป็นสำหรับการคัดลอกตัวจัดการอัตโนมัติที่ถูกต้อง (ยังไม่ได้ใช้งาน) ในกรณีส่วนใหญ่ ค่า __FILE__ ก็เพียงพอแล้ว |
รับการกำหนดค่า | ชื่อของวิธีการที่ส่งกลับอาร์เรย์ของการตั้งค่าเครื่องมือตรวจสอบ หากตัวจัดการถูกนำมาใช้เป็นคลาส ค่าจะเป็นอาร์เรย์ ("class_name", "method_name") |
การตั้งค่าฐานข้อมูล | ชื่อของวิธีการที่รับผิดชอบในการตรวจสอบการตั้งค่าตัวจัดการและการแปลงอาร์เรย์การตั้งค่าเป็นสตริงสำหรับการบันทึก หากตัวจัดการถูกนำมาใช้เป็นคลาส ค่าจะเป็นอาร์เรย์ ("class_name", "method_name") หากไม่มีวิธีนี้ อาเรย์การตั้งค่าจะถูกบันทึกลงในฐานข้อมูลในรูปแบบซีเรียลไลซ์ |
DBGETSETTINGS | ชื่อของวิธีการที่รับผิดชอบในการแปลงสตริงการตั้งค่าตัวจัดการกลับเป็นอาร์เรย์ หากตัวจัดการถูกนำมาใช้เป็นคลาส ค่าจะเป็นอาร์เรย์ ("class_name", "method_name") |
ความเข้ากันได้ | ชื่อของวิธีการที่รับผิดชอบในการตรวจสอบเพิ่มเติมความเข้ากันได้ของโปรไฟล์การประมวลผลด้วยพารามิเตอร์การสั่งซื้อ หากไม่มีวิธีการดังกล่าว จะไม่มีการตรวจสอบเพิ่มเติม หากตัวจัดการถูกนำมาใช้เป็นคลาส ค่าจะเป็นอาร์เรย์ ("class_name", "method_name") |
เครื่องคิดเลข | ชื่อของวิธีการคำนวณค่าจัดส่ง หากตัวจัดการถูกนำมาใช้เป็นคลาส ค่าจะเป็นอาร์เรย์ ("class_name", "method_name") |
โปรไฟล์ | อาร์เรย์ของโปรไฟล์การประมวลผล ต้องมีอย่างน้อยหนึ่งโปรไฟล์ |
สำหรับรูปแบบคำอธิบายดูด้านล่าง
"คำอธิบายโปรไฟล์เป็นอาร์เรย์ของรูปแบบต่อไปนี้: string_profile_identifier " => อาร์เรย์("TITLE" => "โปรไฟล์_ชื่อ , "คำอธิบาย" => "โปรไฟล์_คำอธิบาย ", // น้ำหนักระบุเป็นกรัม "RESTRICTIONS_WEIGHT" => array(, ขั้นต่ำ_น้ำหนักจำกัดน้ำหนัก ), // จำนวนเงินจะแสดงเป็นสกุลเงินหลักของตัวจัดการ "RESTRICTIONS_SUM" => array(, ขั้นต่ำ_สั่งซื้อ_จำนวน));maximum_order_amount
หากอาร์เรย์ RESTRICTIONS_WEIGHT หรือ RESTRICTIONS_SUM มีองค์ประกอบเดียว จะถือว่าเป็นค่าต่ำสุด หากไม่มีข้อจำกัดใดๆ จะต้องระบุอาร์เรย์(0)
" .", "BASE_CURRENCY" => COption::GetOptionString("sale", "default_currency", "RUB"), "HANDLER" => __FILE__, /* วิธีการจัดการ */ "DBGETSETTINGS" => array(" CDeliveryMySimple" , "GetSettings"), "DBSETSETTINGS" => array("CDeliveryMySimple", "SetSettings"), "GETCONFIG" => array("CDeliveryMySimple", "GetConfig"), "ความเข้ากันได้" => array("CDeliveryMySimple" , " ความเข้ากันได้"), "CALCULATOR" => array("CDeliveryMySimple", "คำนวณ"), /* รายการโปรไฟล์การจัดส่ง */ "PROFILES" => array("simple" => array("TITLE" => " delivery" , "DESCRIPTION" => "ระยะเวลาจัดส่งสูงสุด 3 วัน", "RESTRICTIONS_WEIGHT" => array(0), "RESTRICTIONS_SUM" => array(0),),));
พารามิเตอร์ตัวตรวจสอบ
วิธีการที่ระบุโดยองค์ประกอบ GETCONFIG จะต้องส่งคืนอาร์เรย์ขององค์ประกอบของแบบฟอร์ม:
อาร์เรย์("CONFIG_GROUPS" => อาร์เรย์(" group_id1" => "group_name1", "group_id2" => "group_name2", /* ..................... */), "CONFIG" => array(" parameter_identifier1" => อาร์เรย์("TITLE" => " พารามิเตอร์_ชื่อ1, "ประเภท" => " พารามิเตอร์_type1, "ค่าเริ่มต้น" => " default_value ของพารามิเตอร์ 1, "กลุ่ม" => " parameter_group_identifier1"," "ค่า" => อาร์เรย์ (" พารามิเตอร์_ค่า1" => "name_value1_parameter1", "ค่า2_พารามิเตอร์1" => "name_value2_parameter1", /* ....................... */)), /* ........................ */))
กลุ่มของพารามิเตอร์ที่อธิบายไว้ในองค์ประกอบอาร์เรย์ที่มีคีย์ "CONFIG_GROUPS" จะแสดงเป็นแท็บแยกกันในรูปแบบสำหรับการแก้ไขพารามิเตอร์ตัวจัดการที่มีพารามิเตอร์ที่กำหนดให้กับกลุ่มนี้ องค์ประกอบอาร์เรย์ที่มีคีย์ "CONFIG" ระบุรายการพารามิเตอร์ ประเภทพารามิเตอร์สามารถรับค่าใดค่าหนึ่งต่อไปนี้:
- STRING- ช่องป้อนข้อความ
- รหัสผ่าน- ช่องป้อนรหัสผ่าน
- กล่องกาเครื่องหมาย- องค์ประกอบของประเภท "ช่องทำเครื่องหมาย" ที่มีค่า "Y"
- วิทยุ
- ดรอปดาวน์- ชุดตัวเลือกในรูปแบบของรายการแบบเลื่อนลง
- เลือกได้หลายรายการ- ชุดตัวเลือกในรูปแบบของรายการที่มีหลายตัวเลือก
- วิทยุ- ชุดตัวเลือกในรูปแบบของปุ่มตัวเลือก
สำหรับประเภทพารามิเตอร์ หมายถึงตัวเลือกจากตัวเลือกค่าหลายค่า ( ดรอปดาวน์, เลือกได้หลายรายการและ วิทยุ) รายการค่าจะถูกระบุโดยองค์ประกอบของอาร์เรย์ที่สื่อความหมายด้วยคีย์ "VALUES" สำหรับพารามิเตอร์ประเภทอื่น องค์ประกอบนี้จะถูกละเว้น
ฟังก์ชัน GetConfig() ( $arConfig = array("CONFIG_GROUPS" => array("all" => "Delivery cost"),), "CONFIG" => array(),); // พารามิเตอร์ตัวจัดการในกรณีนี้คือค่าต้นทุน จัดส่งไปยังกลุ่มตำแหน่งต่างๆ // สำหรับสิ่งนี้ เราจะสร้างรายการพารามิเตอร์ตามรายการของกลุ่ม $dbLocationGroups = CSaleLocationGroup::GetList(); ในขณะที่ ($arLocationGroup = $dbLocationGroups->Fetch()) ( $arConfig[ "CONFIG"][" price_".$arLocationGroup["ID"]] = array("TYPE" => "STRING", "DEFAULT" => "", "TITLE" => "ค่าจัดส่งไปยังกลุ่ม "\" " .$arLocationGroup[" NAME"]."\" " .(".COption::GetOptionString("sale", "default_currency", "RUB").")", "GROUP" => "all",) ; ) ส่งคืน $arConfig;
พารามิเตอร์การประมวลผล
การจัดการพารามิเตอร์ตัวจัดการต้องใช้สองวิธี ซึ่งระบุไว้ในคำอธิบายโดยพารามิเตอร์ DBSETSETTINGS และ DBGETSETTINGS อันแรกได้รับเป็นอินพุตอาร์เรย์ของค่าพารามิเตอร์ของแบบฟอร์ม " parameter_identifier" => "พารามิเตอร์_ค่า" และควรส่งคืนการแสดงสตริง วิธีที่สองคือทำการแปลงแบบย้อนกลับ ทั้งสองวิธียังสามารถดำเนินการจัดการค่าพารามิเตอร์โดยพลการได้
Function SetSettings($arSettings) ( // ตรวจสอบรายการค่า ลบค่าว่างออกจากรายการ foreach ($arSettings as $key => $value) ( if (strlen($value) > 0) $arSettings[$key] = doubleval($value); else unset($arSettings[$key]); // ส่งคืนค่าเป็นอาร์เรย์ที่ต่อเนื่องกัน สามารถใช้ฟังก์ชัน GetSettings($strSettings) ( // ส่งคืนอาร์เรย์การตั้งค่าที่ยกเลิกการซีเรียลไลซ์ return unserialize($strSettings); )
การตรวจสอบความเข้ากันได้
ความเข้ากันได้ของโปรไฟล์โปรเซสเซอร์กับลำดับจะถูกตรวจสอบโดยใช้วิธีการที่ระบุในคำอธิบายโดยพารามิเตอร์ "COMPABILITY" วิธีการนี้รับพารามิเตอร์ 2 ตัวเป็นอินพุต - อาร์เรย์เชิงพรรณนาของลำดับและอาร์เรย์ของการตั้งค่าตัวจัดการ การตอบสนองของเมธอดคาดว่าอาร์เรย์จะมีตัวระบุโปรไฟล์การจัดส่งที่เหมาะสมสำหรับคำสั่งซื้อที่กำหนด การตรวจสอบที่ระบุโดยค่า "RESTRICTIONS_WEIGHT" และ "RESTRICTIONS_SUM" ในการตั้งค่าโปรไฟล์จะดำเนินการนอกตัวจัดการและไม่จำเป็นที่นี่ รูปแบบของข้อมูลที่ยอมรับเป็นอินพุตมีดังนี้:
พารามิเตอร์แรก - ข้อมูลการสั่งซื้อ - เป็นอาร์เรย์ที่มีคีย์ต่อไปนี้:
พารามิเตอร์ตัวที่สองคือค่าของอาร์เรย์ที่ระบุโดยองค์ประกอบที่มีคีย์ "CONFIG" ในตัวจัดการ ให้กับแต่ละองค์ประกอบซึ่งมีการเพิ่มค่าของพารามิเตอร์ด้วยคีย์ "VALUE" .
ในตัวอย่างที่เรากำลังพิจารณา เงื่อนไขความเข้ากันได้เพียงอย่างเดียวคือการมีอยู่ในการตั้งค่าตัวจัดการของมูลค่าต้นทุนการจัดส่งสำหรับกลุ่มสถานที่ตั้งอย่างน้อยหนึ่งกลุ่มที่มีสถานที่ที่ส่งผ่านในคำสั่งซื้อ
// แนะนำวิธีการอรรถประโยชน์ที่กำหนดกลุ่มสถานที่ตั้งและส่งกลับต้นทุนสำหรับกลุ่มนั้น function __GetLocationPrice($LOCATION_ID, $arConfig) ( // รับรายชื่อกลุ่มสำหรับตำแหน่งที่ส่งผ่าน $dbLocationGroups = CSaleLocationGroup::GetLocationList(array("LOCATION_ID" => $LOCATION_ID)); while ($arLocationGroup = $dbLocationGroups->Fetch()) { if (array_key_exists("price_".$arLocationGroup["LOCATION_GROUP_ID"], $arConfig) && strlen($arConfig["price_".$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"] > 0)) { // если есть непустая запись в массиве настроек для данной группы, вернем ее значение return $arConfig["price_".$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"]; } } // если не найдено подходящих записей, вернем false return false; } // метод проверки совместимости в данном случае практически аналогичен рассчету стоимости function Compability($arOrder, $arConfig) { // проверим наличие стоимости доставки $price = CDeliveryMySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig); if ($price === false) return array(); // если стоимость не найдено, вернем пустой массив - не подходит ни один профиль else return array("simple"); // в противном случае вернем массив, содержащий идентфиикатор единственного профиля доставки } !}
ตัวจัดการ
วิธีการหลักในการคำนวณต้นทุนการจัดส่งจะได้รับพารามิเตอร์อินพุตต่อไปนี้:
- ตัวระบุโปรไฟล์การจัดส่ง
- อาร์เรย์การตั้งค่าตัวจัดการการจัดส่ง
- ลำดับอาร์เรย์คำอธิบาย
- ขั้นตอนการคำนวณปัจจุบัน
- ข้อมูลชั่วคราวที่ถ่ายโอนจากขั้นตอนการคำนวณก่อนหน้า
ผลลัพธ์ของตัวจัดการควรเป็นค่าจัดส่งในสกุลเงินที่ระบุในพารามิเตอร์ หรืออาร์เรย์ของโครงสร้างต่อไปนี้:
สำคัญ | คำอธิบาย |
---|---|
ผลลัพธ์ | รหัสการตอบกลับ ค่าที่เป็นไปได้:
|
ค่า | มูลค่าของค่าจัดส่งในสกุลเงินที่ระบุในพารามิเตอร์ |
(ผลลัพธ์ = "ตกลง") | การขนส่งสาธารณะ |
ระยะเวลาการส่งเป็นวัน (RESULT = "OK") หากไม่มี ระยะเวลาจะไม่แสดง | ระยะเวลาตั้งแต่ |
สายการส่งมอบบริการจัดส่งอัตโนมัติ จากจำนวนวันที่กำหนด จำเป็นสำหรับการส่งข้อมูลเวลาจัดส่งไปยัง Yandex.market ใช้เมื่อพัฒนาบริการจัดส่งของคุณเอง | ระยะเวลาถึง |
สายการส่งมอบบริการจัดส่งอัตโนมัติ จนกว่าจะครบตามจำนวนวันที่กำหนด จำเป็นสำหรับการส่งข้อมูลเวลาจัดส่งไปยัง Yandex.market ใช้เมื่อพัฒนาบริการจัดส่งของคุณเอง | ข้อความ |
ข้อความแสดงข้อผิดพลาดหรือข้อความที่มาพร้อมกับการเปลี่ยนไปยังขั้นตอนถัดไป (RESULT = ("ERROR"|"NEXT_STEP")) | อุณหภูมิ |
สตริงที่มีข้อมูลระดับกลางที่ส่งผ่านไปยังขั้นตอนถัดไป (RESULT = "NEXT_STEP")
Function Calculate($profile, $arConfig, $arOrder, $STEP, $TEMP = false) ( // วิธีการคำนวณยูทิลิตี้ถูกกำหนดไว้ข้างต้น เราเพียงแค่ต้องเปลี่ยนเส้นทางค่าที่ส่งคืนไปยังเอาต์พุต return array("RESULT" => "ตกลง", "VALUE" => CDeliveryMySimple::__GetLocationPrice($arOrder["LOCATION_TO"], $arConfig) )
บูรณาการตัวจัดการ
เส้นทางไปยังไฟล์ตัวจัดการที่เชื่อมต่อโดยอัตโนมัติได้รับการตั้งค่าในการตั้งค่าของโมดูล "ร้านค้าออนไลน์" เส้นทางเริ่มต้นคือ /bitrix/php_interface/include/sale_delivery/ ไฟล์ดังกล่าวต้องมีคำนำหน้า จัดส่ง_มิฉะนั้นจะถูกเพิกเฉย หากระบบตรวจพบไฟล์ที่มีชื่อเดียวกับระบบ ไฟล์นั้นจะเชื่อมต่อแทนระบบหนึ่ง การเปิดใช้งานการจัดส่งอัตโนมัติในไฟล์ทำได้โดยการตั้งค่าวิธีการอธิบายเป็นตัวจัดการสำหรับเหตุการณ์ onSaleDeliveryHandlersBuildList
ตัวอย่าง
เพื่อสรุปทั้งหมดที่กล่าวมาข้างต้น เรามาสร้างตัวจัดการการจัดส่งแบบง่ายๆ กันดีกว่า คลาสตัวจัดการจะอยู่ในไฟล์ /bitrix/php_interface/include/sale_delivery/delivery_mysimple.php
// Листинг файла /bitrix/php_interface/include/sale_delivery/delivery_mysimple.php
CModule::IncludeModule("sale");
class CDeliveryMySimple
{
function Init()
{
return array(/* Основное описание */
"SID" =>"simple", "NAME" => "จัดส่งโดยผู้จัดส่ง", "DESCRIPTION" => "", "DESCRIPTION_INNER" => "ตัวจัดการอย่างง่ายสำหรับการจัดส่งทางไปรษณีย์ เพื่อให้สามารถทำงานได้ " " ต้องมีกลุ่มสถานที่ตั้งอย่างน้อยหนึ่งกลุ่ม เมื่อตั้งค่าตัวจัดการ คุณต้องระบุ " .ต้นทุนการจัดส่งคงที่สำหรับกลุ่มสถานที่ตั้งแต่ละกลุ่ม หากต้องการป้องกันไม่ให้ " .group เข้าร่วมในการประมวลผล ให้เว้นช่องต้นทุนสำหรับกลุ่มนี้ว่างไว้" -
"
."" .แก้ไขกลุ่มสถานที่ตั้ง" .", "BASE_CURRENCY" => COption::GetOptionString("sale", "default_currency", "RUB"), "HANDLER" => __FILE__, /* วิธีการจัดการ */ "DBGETSETTINGS" => array("CDeliveryMySimple", "GetSettings"), "DBSETTINGS" => array("CDeliveryMySimple", "SetSettings"), "GETCONFIG" => array("CDeliveryMySimple", "GetConfig"), "ความเข้ากันได้" => array("CDeliveryMySimple", "ความเข้ากันได้ "), "CALCULATOR" => array("CDeliveryMySimple", "คำนวณ"), /* รายการโปรไฟล์การจัดส่ง */ "PROFILES" => array("simple" => array("TITLE" => "delivery", " DESCRIPTION" => "ระยะเวลาจัดส่งสูงสุด 3 วัน", "RESTRICTIONS_WEIGHT" => array(0), // ไม่มีข้อจำกัด "RESTRICTIONS_SUM" => array(0), // ไม่มีข้อจำกัด),)); ฟังก์ชันการตั้งค่าตัวจัดการ GetConfig() ( $arConfig = array("CONFIG_GROUPS" => array("all" => "Delivery cost"),), "CONFIG" => array(),); // การตั้งค่าตัวจัดการในกรณีนี้คือ การจัดส่งมูลค่าต้นทุนไปยังกลุ่มสถานที่ตั้งต่างๆ // สำหรับสิ่งนี้ เราจะสร้างรายการการตั้งค่าตามรายการของกลุ่ม $dbLocationGroups = CSaleLocationGroup::GetList(); $arLocationGroup["LOCATION_GROUP_ID"], $arConfig) && strlen($arConfig["price_".$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"] > 0)) ( // หากมีรายการที่ไม่ว่างเปล่าใน อาร์เรย์การตั้งค่าสำหรับกลุ่มนี้ ให้ส่งคืนค่า return $arConfig["price_".$arLocationGroup["LOCATION_GROUP_ID"]]["VALUE"]; ) // หากไม่พบบันทึกที่ตรงกัน ให้คืนค่า false return false;
โพสต์ข้อเท็จจริง
เคล็ดลับสุดท้ายบางประการ:
- หากโปรเซสเซอร์ของคุณใช้การคำนวณที่ต้องใช้ทรัพยากรมาก การเรียกฐานข้อมูล คำขอไปยังเซิร์ฟเวอร์ระยะไกล ฯลฯ อย่างเด็ดขาดขอแนะนำให้ใช้ตัวเลือกการแคชผลลัพธ์หนึ่งหรือตัวเลือกอื่น ซึ่งนำไปใช้ในลักษณะที่จดจำผลลัพธ์อย่างน้อยสำหรับลำดับที่มีพารามิเตอร์เหล่านี้ นี่เป็นสิ่งจำเป็นเนื่องจากในระหว่างกระบวนการวางและประมวลผลคำสั่งซื้อการร้องขอไปยังผู้ประมวลผลเพื่อคำนวณต้นทุนของคำสั่งซื้ออาจเกิดขึ้นหลายครั้ง ตัวจัดการที่ให้มาจะใช้กลไกแคชที่ได้รับการจัดการ ซึ่งกำหนดค่าโดยคำนึงถึงลักษณะเฉพาะของอัลกอริธึมการคำนวณต้นทุนของบริการจัดส่งเฉพาะ
- หากต้องการปรับแต่งตัวจัดการระบบ เพียงคัดลอกไฟล์ (พร้อมกับไฟล์ที่แนบมาด้วย ซึ่งโดยปกติจะอยู่ในไดเร็กทอรีที่มีชื่อเดียวกัน) ไปยังไดเร็กทอรี /bitrix/php_interface/include/sale_deivery/ โดยคงชื่อไว้ ในกรณีนี้มันจะเชื่อมต่อ แทนเป็นระบบ
วิธีโหลดไฟล์คอนฟิกูเรชัน:
วิธีตั้งค่าวิดเจ็ตตะกร้าสินค้า:
ในบัญชีส่วนตัว Yandex.Delivery ของคุณ ให้ทำตามลิงก์การตั้งค่าที่มุมขวาบนของหน้า จากนั้นไปที่แท็บ บูรณาการ → วิดเจ็ต.
ในบล็อกวิดเจ็ตรถเข็น ให้คลิกปุ่มติดตั้ง และคัดลอกโค้ดวิดเจ็ต
กลับไปที่การตั้งค่าโมดูลและวางโค้ดลงในช่อง รหัสวิดเจ็ตรถเข็น.
อย่าลืมเลือกเมืองที่คลังสินค้าของคุณตั้งอยู่ หากคุณต้องการจัดส่งใบสั่งไปยังคลังสินค้าเดียว ให้เปิดใช้งานตัวเลือก ใช้คลังสินค้า Yandex.Delivery.
ค่าเริ่มต้นของผู้ส่ง
ในสนาม รหัสผู้ส่งเริ่มต้นเลือกร้านค้าที่มีการจัดส่งคำสั่งซื้อบ่อยที่สุด
ขนาดสินค้า
กำหนดขนาดและน้ำหนักของสินค้า มิติข้อมูลที่ระบุจะถูกส่งไปยัง Yandex.Delivery และค่าจัดส่งจะคำนวณตามขนาดเหล่านั้น
หากคุณไม่ทราบว่าจะเลือกค่าใดในบล็อกนี้ โปรดติดต่อผู้ดูแลไซต์ของคุณ
สั่งซื้อคุณสมบัติ
รายการทางด้านซ้ายแสดงรายการฟิลด์ที่ผู้ใช้กรอกเมื่อทำการสั่งซื้อ ในรายการทางด้านขวา ให้เลือกคุณสมบัติใบสั่งที่เหมาะสม รายการคุณสมบัติทั้งหมดอยู่ในหน้า ร้านค้า → สั่งซื้อคุณสมบัติ- คุณสมบัติที่เลือกจะถูกใช้ในบัตรคำสั่งซื้อ
หากคุณไม่ทราบว่าจะเลือกอะไรในบล็อกนี้ โปรดติดต่อผู้ดูแลไซต์ของคุณ
ความสนใจ. หากคุณตั้งค่าที่อยู่โดยอัตโนมัติ อย่าลืมตรวจสอบการตั้งค่าที่อยู่ เทมเพลตใหม่ใช้ในโมดูล "ร้านค้า" เวอร์ชันล่าสุด"))\"> เทมเพลตการสั่งซื้อ ใช้บนเว็บไซต์ของคุณ หากคุณใช้เทมเพลตเก่า ให้ตรวจสอบตัวเลือกที่เหมาะสม
สถานะการสั่งซื้อ
รายการทางด้านซ้ายแสดงสถานะของคำสั่งซื้อในระบบ Yandex.Delivery ในช่องด้านขวา ให้เลือกค่าที่เหมาะสมในระบบของคุณ
หากไม่มีสถานะในระบบของคุณสำหรับสถานะ Yandex.Delivery ให้เว้นช่องนี้ว่างไว้
คุณสมบัติของผลิตภัณฑ์
เลือกคุณสมบัติที่ตรงกับ SKU ของคำสั่งซื้อ หากคุณไม่แน่ใจว่าควรเลือกคุณสมบัติใด โปรดติดต่อผู้ดูแลไซต์ของคุณ
การตั้งค่าส่วนประกอบ
เปิดใช้งานตัวเลือกนี้เพื่อให้เมื่อทำการสั่งซื้อ ผู้ซื้อจะเห็นวิดเจ็ตตะกร้าสินค้าทันทีเมื่อเขาเลือก Yandex.Delivery ผู้ซื้อไม่จำเป็นต้องดำเนินการเพิ่มเติมเมื่อทำการสั่งซื้อ
ตัวอย่าง
วิธีส่งคำสั่งซื้อไปที่ Yandex.Delivery
วิธีส่งคำสั่งซื้อไปที่ Yandex.Delivery:
ไปที่หน้าบนเว็บไซต์ของคุณ การบริหาร→ ร้านค้า → คำสั่งซื้อ.
คลิก ID ของคำสั่งซื้อที่ต้องการ จากนั้นคลิกปุ่ม Yandex.Delivery
อาจมีข้อความในหน้าต่างส่งคำสั่งซื้อ “รายละเอียดการสั่งซื้อมีการเปลี่ยนแปลง ต้องคำนวณค่าจัดส่งใหม่”- คลิกปุ่ม เปลี่ยนตัวเลือกการจัดส่งและเลือกตัวเลือกใหม่
บันทึก. โมดูลไม่มีความสามารถในการจัดการการจัดส่ง - ซึ่งสามารถทำได้ในบัญชีส่วนตัว Yandex.Delivery ของคุณ
การติดตั้งวิดเจ็ต
คุณสามารถติดตั้งวิดเจ็ตทางภูมิศาสตร์หรือวิดเจ็ตตะกร้าสินค้าบนเว็บไซต์ของคุณได้
ขั้นตอนที่ 1 สร้างหน้าทดสอบบนเว็บไซต์
ไปที่แท็บเว็บไซต์และที่แผงด้านบนให้คลิกปุ่ม สร้างเพจ.
ในหน้าต่างที่เปิดขึ้น ให้เลือกตัวเลือก ไปที่การแก้ไขหน้าและ จำกัดการเข้าถึงเพจ- เปิดใช้งานการเข้าถึงสำหรับผู้ดูแลระบบเท่านั้น
ไม่จำเป็นต้องกรอกอะไรอีก - คลิกปุ่มเสร็จสิ้น
ขยายเมนู ร้านค้า → ส่วนประกอบยานเดกซ์มาร์เก็ตแล็บและลาก วิดเจ็ต Yandex.Deliveryลงในช่องว่างด้านซ้าย
กลับไปที่การตั้งค่าโมดูลและวางโค้ดลงในฟิลด์ที่เหมาะสม
ตั้งค่าส่วนที่เหลือแล้วคลิกปุ่มบันทึก หากคุณไม่แน่ใจว่าควรเลือกค่าใด โปรดติดต่อผู้ดูแลไซต์ของคุณ
การแก้ปัญหา
โมดูลไม่ทำงาน
ก่อนอื่น ตรวจสอบให้แน่ใจว่าไซต์ของคุณตรงตามข้อกำหนดของระบบ ซึ่งสามารถทำได้บนหน้า การบริหาร→ การตั้งค่า → เครื่องมือ → การวินิจฉัย → การตั้งค่า PHP- ควรแสดงค่าต่อไปนี้:
ในบล็อกบนสุด - PHP เวอร์ชัน 5.3–7.0
ในตารางแรก ในบรรทัด Server API - Apache 2.0 หรือสูงกว่า
ในตาราง MySQL ในบรรทัดเวอร์ชัน Client API - เวอร์ชัน 5.0 หรือสูงกว่า
ในตาราง cURL ในบรรทัดสนับสนุน cURL - "เปิดใช้งาน"
หากไซต์ไม่ตรงตามข้อกำหนดใด ๆ โปรดติดต่อโฮสต์ของไซต์
นอกจากนี้ คุณยังสามารถเรียกใช้การสแกนไซต์บนเพจได้ การบริหาร→ การตั้งค่า → เครื่องมือ → การตรวจสอบระบบบนแท็บ การทดสอบการกำหนดค่าและ การตรวจสอบการเข้าถึง.
เมื่อติดตั้งโมดูล ข้อผิดพลาด “Yandex.Delivery service not found” จะปรากฏขึ้น
เพิ่มบริการด้วยตนเอง เมื่อต้องการทำสิ่งนี้:
ไปที่หน้า การบริหาร→ ร้านค้า → การตั้งค่า → บริการจัดส่ง.
คลิกปุ่มเพิ่มแล้วเลือกตัวเลือก บริการจัดส่งอัตโนมัติ.
บนแท็บ การตั้งค่าตัวจัดการขยายรายการดรอปดาวน์บริการจัดส่งแล้วเลือก Yandex.Delivery
คำแนะนำ. หากคุณไม่สามารถแก้ไขปัญหาได้ โปรดติดต่อฝ่ายสนับสนุนในบัญชี Yandex.Delivery ของคุณ
ในวิธีการจัดส่ง ผู้ซื้อจะไม่เห็นลิงก์ Yandex.Delivery หรือลิงก์ "เลือกตัวเลือกการจัดส่ง"
ขั้นตอนที่ 1: ตรวจสอบบริการจัดส่ง
ไปที่หน้า การบริหาร→ ร้านค้า → บริการจัดส่งและตรวจสอบว่าเพจมี Yandex.Delivery และเปิดใช้งานอยู่
คลิกที่ Yandex.Delivery และตรวจสอบให้แน่ใจว่าแท็บข้อจำกัดในหน้าต่างที่เปิดขึ้นมานั้นว่างเปล่า
ไปที่หน้า การบริหาร → การตั้งค่าผลิตภัณฑ์ → การตั้งค่าโมดูล→ Yandex.Deliveryและตรวจสอบให้แน่ใจว่า:
การตั้งค่าทั้งหมดในบล็อก การตั้งค่าการแลกเปลี่ยนได้รับการตั้งค่าอย่างถูกต้อง
ในบล็อก ขนาดสินค้าได้รับค่าทั้งหมด
ตรวจสอบว่าตั้งค่าเมืองร้านค้าไว้ในการตั้งค่า:
ไปที่หน้า การบริหาร→ คุณสมบัติการสั่งซื้อ → รายการคุณสมบัติ.
สำหรับทรัพย์สินแต่ละแห่งที่มีประเภท "สถานที่ตั้ง" ให้คลิกหมายเลขทรัพย์สิน และในหน้าต่างที่เปิดขึ้น ให้ระบุเมืองที่ร้านค้าหลักหรือคลังสินค้าของคุณตั้งอยู่
หากเว็บไซต์ของคุณใช้ เทมเพลตใหม่ใช้ในโมดูล "ร้านค้า" เวอร์ชันล่าสุด
"}}\">เทมเพลตการชำระเงินใหม่เปิดใช้งานโหมดความเข้ากันได้:คำแนะนำ. หากคุณไม่สามารถแก้ไขปัญหาได้ โปรดติดต่อฝ่ายสนับสนุนในบัญชี Yandex.Delivery ของคุณ
ผู้ใช้ไม่เห็นค่าจัดส่งเมื่อเลือก Yandex.Delivery
คำแนะนำ. หากคุณไม่สามารถแก้ไขปัญหาได้ โปรดติดต่อฝ่ายสนับสนุนในบัญชี Yandex.Delivery ของคุณ
Yandex.Delivery ไม่รวมข้อมูลผู้ซื้อ
หากบัตรคำสั่งซื้อมีข้อมูลของผู้ซื้อทั้งหมด แต่ไม่มีแบบฟอร์มสำหรับส่งคำสั่งซื้อไปยัง Yandex.Delivery ให้ตรวจสอบการตั้งค่าคุณสมบัติคำสั่งซื้อในหน้า การบริหาร→ ร้านค้า → คุณสมบัติการสั่งซื้อ → รายการคุณสมบัติ.
"}}\">เทมเพลตการชำระเงิน :- เทมเพลตใหม่
- แม่แบบเก่า
ไม่ว่าคุณจะเลี้ยงหมาป่ามากแค่ไหน หมูก็จะได้รสชาติดีขึ้น
Bitrix: การสร้างตัวจัดการบริการจัดส่งอัตโนมัติ
Bitrix มีบริการจัดส่งสองประเภท: กำหนดเองและอัตโนมัติ บทความนี้จะอธิบายวิธีสร้างเครื่องจัดการบริการจัดส่งแบบอัตโนมัติ
ตัวจัดการอัตโนมัตินี้คืออะไร?
ตัวจัดการที่ติดตั้งไว้ล่วงหน้าทั้งหมดอยู่ในโฟลเดอร์ /bitrix/modules/sale/lang/ru/delivery/ ตัวจัดการของคุณควรอยู่ในโฟลเดอร์ /bitrix/php_interface/include/sale_delivery/ (เส้นทางนี้สามารถเปลี่ยนแปลงได้ในคุณสมบัติของโมดูลร้านค้าออนไลน์)
ตัวจัดการคือคลาสของโครงสร้างเฉพาะที่มีสตริงการเชื่อมต่อสำหรับตัวจัดการการนำส่งเหตุการณ์ onSaleDeliveryHandlersBuildList.
คลาสตัวจัดการการจัดส่งต้องมีหลายวิธี ประเภทของการดำเนินการที่อธิบายไว้ในวิธี Init ของคลาส
1. Init - ฟิลด์หลักจะถูกเตรียมใช้งาน
2. DBGETSETTINGS - วิธีการอ่านค่าพารามิเตอร์
3. DBSETSETTINGS - วิธีการตั้งค่าพารามิเตอร์
4. GETCONFIG - กำหนดการกำหนดค่าการตั้งค่า (สามารถแบ่งออกเป็นแท็บได้)
5. ความเข้ากันได้ - ตรวจสอบความเข้ากันได้ของโปรไฟล์โปรเซสเซอร์กับคำสั่งซื้อ
6. CALCULATOR - คำนวณค่าจัดส่ง
1. SID - ตัวระบุสตริงเฉพาะของตัวจัดการ
2. NAME — ชื่อของผู้จัดการ
3. คำอธิบาย - คำอธิบายข้อความของตัวจัดการ
4. DESCRIPTION_INNER — คำอธิบายภายในของตัวจัดการ ซึ่งแสดงขึ้นเมื่อกำหนดค่าตัวจัดการในแผงควบคุม
5. BASE_CURRENCY — ตัวระบุสกุลเงินหลักของตัวจัดการ
6. HANDLER — พาธไปยังไฟล์ตัวจัดการ จำเป็นสำหรับการคัดลอกตัวจัดการอัตโนมัติที่ถูกต้อง (ยังไม่ได้ใช้งาน) ในกรณีส่วนใหญ่ ค่า __FILE__ ก็เพียงพอแล้ว
ต้องระบุอย่างน้อยหนึ่งรายการด้วย โปรไฟล์การจัดส่ง
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); CModule::IncludeModule("sale"); CModule::IncludeModule("iblock"); Class CDeliveryPlain { /** * Описние обработчика */ function Init() { //настройки return array("SID" => "ธรรมดา", // ตัวระบุบริการจัดส่ง "NAME" => "Courier Krasnaya Presnya", "DESCRIPTION" => "คำอธิบายสำหรับลูกค้าไซต์", "DESCRIPTION_INNER" => "คำอธิบายสำหรับผู้ดูแลไซต์", "BASE_CURRENCY" = > "RUR", "HANDLER" => __FILE__, /* การกำหนดวิธีการ */ "DBGETSETTINGS" => array("CDeliveryPlain", "GetSettings"), "DBSETSETTINGS" => array("CDeliveryPlain", "SetSettings"), " GETCONFIG" => array("CDeliveryPlain", "GetConfig"), "COMPABILITY" => array("CDeliveryPlain", "ความเข้ากันได้"), "CALCULATOR" => array("CDeliveryPlain", "คำนวณ"), /* รายการโปรไฟล์ */ "PROFILES" => array("all" => array("TITLE" => "ไม่มีข้อจำกัด", "DESCRIPTION" => "โปรไฟล์การจัดส่งโดยไม่มีข้อจำกัดใดๆ", "RESTRICTIONS_WEIGHT" => array(0 ) , "RESTRICTIONS_SUM" => อาร์เรย์(0),),));<= 5000) $DeliveryCost = 750; elseif($TotalSum >= 5,000) $ค่าจัดส่ง = 0; return array("RESULT" => "OK", "VALUE" => $_SESSION["ORDER_DELIVERY_PRICE"], "VALUE" => $DeliveryCost);
) ) AddEventHandler("ขาย", "onSaleDeliveryHandlersBuildList", array("CDeliveryPlain", "Init")); -