mirror of
https://github.com/retailcrm/prestashop-module.git
synced 2025-03-01 19:03:14 +03:00
Added filter example to doc
This commit is contained in:
parent
960ed4438a
commit
1861b5255a
@ -1,63 +1,28 @@
|
||||
# Examples
|
||||
|
||||
- [Classes](#classes)
|
||||
- [Prices with discounts to icml](#prices-with-discounts-to-icml)
|
||||
- [Example](#example)
|
||||
- [Filters](#filters)
|
||||
- [Set order custom field on status change](#set-order-custom-field-on-status-change)
|
||||
- [Prices with discounts to icml](#prices-with-discounts-to-icml)
|
||||
|
||||
## Classes
|
||||
|
||||
### Prices with discounts to ICML
|
||||
|
||||
Customization for generate ICML catalog with prices including discounts
|
||||
|
||||
Put code to `.../retailcrm/custom/classes/RetailcrmCatalog.php`:
|
||||
### Example
|
||||
|
||||
```php
|
||||
<...>
|
||||
$price = !empty($product['rate'])
|
||||
? round($product['price'], 2) + (round($product['price'], 2) * $product['rate'] / 100)
|
||||
: round($product['price'], 2);
|
||||
|
||||
// CUSTOMIZATION
|
||||
$id_group = 0; // All groups
|
||||
$id_country = 0; // All countries
|
||||
$id_currency = 0; // All currencies
|
||||
$id_shop = Shop::getContextShopID();
|
||||
$specificPrice = SpecificPrice::getSpecificPrice($product['id_product'], $id_shop, $id_currency, $id_country, $id_group, null);
|
||||
|
||||
if (isset($specificPrice['reduction'])) {
|
||||
if ($specificPrice['reduction_type'] === 'amount') {
|
||||
$price = round($price - $specificPrice['reduction'], 2);
|
||||
} elseif ($specificPrice['reduction_type'] === 'percentage') {
|
||||
$price = round($price - ($price * $specificPrice['reduction']), 2);
|
||||
}
|
||||
}
|
||||
// END OF CUSTOMIZATION
|
||||
|
||||
if (!empty($product['manufacturer_name'])) {
|
||||
$vendor = $product['manufacturer_name'];
|
||||
} else {
|
||||
$vendor = null;
|
||||
}
|
||||
<...>
|
||||
```
|
||||
|
||||
## Filters
|
||||
|
||||
### Set order custom field on status change
|
||||
|
||||
Put code to `custom/filters/RetailcrmFilterOrderStatusUpdate.php`:
|
||||
|
||||
```php
|
||||
<?php
|
||||
// custom/filters/RetailcrmFilterOrderStatusUpdate.php
|
||||
|
||||
class RetailcrmFilterOrderStatusUpdate implements RetailcrmFilterInterface
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public static function filter($object, array $parameters)
|
||||
{
|
||||
// get data from Order object
|
||||
@ -85,3 +50,35 @@ class RetailcrmFilterOrderStatusUpdate implements RetailcrmFilterInterface
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Prices with discounts to ICML
|
||||
|
||||
```php
|
||||
<?php
|
||||
// custom/filters/RetailcrmFilterProcessOffer.php
|
||||
|
||||
class RetailcrmFilterProcessOffer implements RetailcrmFilterInterface
|
||||
{
|
||||
public static function filter($object, array $parameters)
|
||||
{
|
||||
$product = $parameters['product'];
|
||||
$price = $object['price'] ?? null;
|
||||
|
||||
$id_group = 0; // All groups
|
||||
$id_country = 0; // All countries
|
||||
$id_currency = 0; // All currencies
|
||||
$id_shop = Shop::getContextShopID();
|
||||
$specificPrice = SpecificPrice::getSpecificPrice($product['id_product'], $id_shop, $id_currency, $id_country, $id_group, null);
|
||||
|
||||
if (isset($specificPrice['reduction'])) {
|
||||
if ($specificPrice['reduction_type'] === 'amount') {
|
||||
$object['price'] = round($price - $specificPrice['reduction'], 0);
|
||||
} elseif ($specificPrice['reduction_type'] === 'percentage') {
|
||||
$object['price'] = round($price - ($price * $specificPrice['reduction']), 0);
|
||||
}
|
||||
}
|
||||
|
||||
return $object;
|
||||
}
|
||||
}
|
||||
```
|
Loading…
x
Reference in New Issue
Block a user