Files
b2b.redline.com.pl/modules/pricewars2/custom_functions.example.php
2025-06-24 14:14:35 +02:00

57 lines
2.6 KiB
PHP

<?php
// Plik działa tylko w wersji Premium
// Jeśli chcemy, aby ten plik działał musimy mu zmienić nazwę na custom_functions.php. Pozwoli to uniknąć nadpisania zmodyfikowanego pliku podczas aktualizacji modułu.
// (a tak serio, to wystarczy że w sklepie będzie zdefiniowana funkcja z tą nazwą, byle byłaby zadeklarowana przed generowaniem XML :) )
/**
* Funkcja modyfikująca obiekt tuż przed jego wygenerowaniem do XML
* @param stdClass $product Obiekt produktu
* @param int $id_xml ID XML'a który jest właśnie przetwarzany, przydatne do warunków
* @param int $id_lang ID języka dla presty.
* @param string $service Typ XML'a według którego generowana jest oferta
* @param string $settings Tablica z ustawieniami
* @return void
*/
function pricewars2_product(\pricewars2\product $product, $id_xml, $id_lang, $service, $settings, $module){
// ta funkcja jest też dostępna pod hakiem: actionPricewarsBeforeOutput
if($id_xml == 1){
// Jeśli chcemy, aby warunek był użyty tylko dla jednego XML'a o ID 1
// Aby pominąć produkt z eksportu, należy wyrzucić wyjatek.
throw new \pricewars2\pricewarsSkipException('Nie chce tego produktu z własnej, niewymuszonej woli :)');
}
// Wymusza availability dla danego produktu na 1. Dostępne wartośći to 1,3,7,14,99 (w przypadku ceneo)
$product->availability_force;
// UWAGA Ta wartość zostanie nadpisana przez availability force lub też przez funkcje decydujące o stanie availabilty. Używamy tylko availability force jak wyżej
$product->availability;
// Realna ilość dostępnego produktu w sklepie (pobierana z bazy)
$product->quantity;
// Quantity Overwrite - Wartość eksportowana w XML, chyba że jest ustawiona na false, wtedy pobierana jest wartość realna.
$product->quantity_o;
// Status dla google: <g:availability>
$product->google_state;
// Inne dostępne pola:
// var_dump($product);
// Nadpisanie kosztów dostawy dla produktu
$sp = new \pricewars2\shipping\shippingcollection();
$sp->addToList((new \pricewars2\shipping\shipping())->fillByArray([
'price' => 250, // Nie przelicza walut. Podać w walucie w której generowany jest XML
'name' => 'Rabbit Delivery Corp. - Super fast delivery services',
]));
$sp->addToList((new \pricewars2\shipping\shipping())->fillByArray([
'price' => 50,
'name' => 'Snail Transport ltd - Cheap, but... really... slow...',
]));
$product->setShippingCollection($sp);
// Reset kolekcji dostaw. Sklep pobierze automatycznie na podstawie kurierów.
// $product->resetShippingCollection();
}